+ Camera() :
+ position_(0.0, 0.0, 0.0)
+ {
+ cml::quaternion_rotation_world_y(rotation_, 0.0f);
+ calculateSecondary();
+ }
+
+ void setPosition(const Vector3& point);
+ void setRotation(const Quaternion& rotation);
+
+ void setProjection(const Matrix4& projection);
+ void setProjection(Scalar fovy, Scalar aspect, Scalar near, Scalar far);
+
+ void uploadProjectionToGL() const;
+
+ void lookAt(const Vector3& point);
+
+ const Matrix4& getModelviewMatrix() const
+ {
+ return modelview_;
+ }
+
+ const Frustum& getFrustum() const
+ {
+ return frustum_;
+ }
+
+ void handleEvent(const Event& event);
+ void update(Scalar t, Scalar dt);
+