SparrowEngine/src/cameranode.h

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