Engine::Camera
- trying to avoid glu as it glu might not be supported on every configuration, borrowed some code from http://www.songho.ca/opengl/gl_transform.html