9#include <glm/mat4x4.hpp>
10#include <glm/matrix.hpp>
12#include <glm/gtc/matrix_transform.hpp>
64 virtual void Initialize();
70 virtual void Update(
float deltaTime);
76 void SetPosition(
const glm::vec3& position);
82 void SetRotation(
const glm::quat& rotation);
88 void SetRotation(
const glm::vec3& rotation);
93 glm::vec3 GetPosition()
const;
98 glm::quat GetRotationQuat()
const;
103 glm::vec3 GetRotation()
const;
108 glm::vec3 GetForward()
const;
113 glm::vec3 GetUp()
const;
118 glm::vec3 GetRight()
const;
123 const glm::mat4& ViewMatrix()
const;
128 const glm::mat4& ProjectionMatrix()
const;
133 glm::mat4 ViewProjectionMatrix()
const;
143 void UpdateProjectionMatrix();
148 void UpdateViewMatrix();
Represents a 3D perspective camera with world transform and projection settings.
static const float sDefaultAspectRatio
virtual ~Camera()=default
Virtual destructor.
Camera(const Camera &rhs)=delete
static const float sDefaultFarPlaneDistance
Camera & operator=(const Camera &rhs)=delete
static const float sDefaultFieldOfView
std::unique_ptr< SceneComponent > mSceneComponent
glm::mat4 mProjectionMatrix
static const float sDefaultNearPlaneDistance
Defines a generic application interface for rendering-based programs.