40 lines
872 B
C++
40 lines
872 B
C++
#ifndef CAMERANODE_H
|
|
#define CAMERANODE_H
|
|
|
|
#include "scene.h"
|
|
#include "camera.h"
|
|
#include "glm/vec3.hpp"
|
|
|
|
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
|