#ifndef CAMERANODE_H #define CAMERANODE_H #include "scene.h" #include "camera.h" class CameraNode : public SceneNode, public Camera { bool m_hasMoved; bool m_hasResized; glm::vec3 m_eye; glm::vec3 m_target; float m_yFov; float m_ratio; float m_near; float m_far; glm::mat4 m_projection; glm::mat4 m_view; public: CameraNode(glm::vec3 position, float yFov = 70.f, float near = 0.1f, float far = 100.f); CameraNode(float yFov = 70.f, float near = 0.1f, float far = 100.f) : CameraNode(glm::vec3(0), yFov, near, far) {} void setPosition(glm::vec3 position); void setTarget(glm::vec3 target); virtual void update(); virtual glm::mat4 getProjectionMatrix(); virtual glm::mat4 getViewMatrix(); virtual void resize(int width, int height); }; #endif // CAMERANODE_H