X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FCamera.hh;h=b5927f438e0d3e27f376f8e5a559da6e5d9190f5;hp=0aa5dc9990cf5c3f97f23b0db1b76467e91fc143;hb=7e898e8ec0ff716e2fc722b883a626a6c346f107;hpb=493ddb59a8620b49dfa0ff62ce93395ebfd02e86 diff --git a/src/Moof/Camera.hh b/src/Moof/Camera.hh index 0aa5dc9..b5927f4 100644 --- a/src/Moof/Camera.hh +++ b/src/Moof/Camera.hh @@ -46,20 +46,23 @@ public: Camera() : position_(0.0, 0.0, 0.0) { - quaternion_rotation_world_y(rotation_, 0.0); - srcRotation_ = rotation_; - dstRotation_ = rotation_; + 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& getTransformation() const + const Matrix4& getModelviewMatrix() const { - return transformation_; + return modelview_; } const Frustum& getFrustum() const @@ -67,21 +70,18 @@ public: return frustum_; } - void adjustFromInput(const Event& event); + 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_; + Lerp3 pInterp_; };