+void Camera::uploadToGL(Scalar alpha) const
+{
+ calculate(alpha);
+
+ glMatrixMode(GL_PROJECTION);
+ glMultMatrix(mProjection.data());
+
+ glMatrixMode(GL_MODELVIEW);
+ glMultMatrix(mModelview.data());
+}
+
+void Camera::calculate(Scalar alpha) const
+{
+ State3 state = getState(alpha);
+
+ cml::matrix_rotation_quaternion(mModelview, state.orientation);
+
+ Matrix4 translate;
+ cml::matrix_translation(translate, state.position);
+
+ mModelview *= translate;
+
+ mFrustum.init(mModelview, mProjection);
+}
+
+
+void Camera::update(Scalar t, Scalar dt)