aosabook/500lines — pull request #31 by EkkiD (2014-02-21 00:47:00+00:00)
Title: Modeller

Summary
-----------
This project implements a small 3d modeller in Python2 using Legacy OpenGL as provided by PyOpenGL.

I chose Legacy OpenGL over Modern OpenGL because it provides more default functionality, so I can do more with less lines of code.

It supports the following basic functionality:
* Left click selects and drags objects on screen.
* Middle click moves the scene.
* Right click rotates the screen.
* 'C' places a cube at the mouse cursor
* 'S' places a sphere at the mouse cursor

Quality To Do
-----------------
* Figure out what files to include in the 500 lines. Some files are uninteresting (primitive.py, tranformation.py, and possibly AABB.py) and might not be worth including.
* Double check line count
* Determine how to document the code: lots of comments? mostly in the chapter?

Features To Do
--------------------
* Allow user to set the color of nodes
* Allow user to set scaling of nodes

Feature Wishlist
--------------------
* Undo Stack
* More Primitives
* Collision between nodes'

Files
------
In the chapter:
* viewer.py
* interaction.py
* scene.py
* node.py

Unsure:
* aabb.py

Not in chapter:
* transformation.py
* primitive.py