#pragma once #include #include "Poseable.h" namespace charcoal { using namespace glm; class Camera { public: Camera() : m_view_matrix(1.0f), m_projection_matrix(1.0f) {} mat4 get_world_to_view_matrix() const { return m_projection_matrix * m_view_matrix; } const vec3& get_position() const { return m_position; } const mat4& get_view_matrix() const { return m_view_matrix; } const mat4& get_projection_matrix() const { return m_projection_matrix; } protected: vec3 m_position; mat4 m_view_matrix; mat4 m_projection_matrix; }; }