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
* Up/Down scales the currently selected node
* Left/Right changes the color of the currently selected node

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?

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