#define _MOOF_CAMERA_HH_
#include <Moof/Event.hh>
+#include <Moof/Frustum.hh>
#include <Moof/Interpolator.hh>
#include <Moof/Math.hh>
position_(0.0, 0.0, 0.0)
{
quaternion_rotation_world_y(rotation_, 0.0);
- srcRotation_ = rotation_;
- dstRotation_ = rotation_;
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& getTransformation() const
+ const Matrix4& getModelviewMatrix() const
{
- return transformation_;
+ return modelview_;
}
- void adjustFromInput(const Event& event);
+ const Frustum& getFrustum() const
+ {
+ return frustum_;
+ }
+ void handleEvent(const Event& event);
void update(Scalar t, Scalar dt);
private:
Vector3 position_;
Quaternion rotation_;
+ Matrix4 projection_;
- Matrix4 transformation_;
+ Matrix4 modelview_;
+ Frustum frustum_;
Lerpv3 pInterp_;
-
- Quaternion srcRotation_;
- Quaternion dstRotation_;
- Scalar tInterp_;
};