5#include <glm/gtc/quaternion.hpp>
8#include "physics/Plane.h"
9#include "render/events/EngineEventSite.h"
31 enum class ProjectionType {
41 void position(
const glm::vec3& pos) { m_position = pos; }
42 const glm::vec3& position()
const {
return m_position; }
43 const glm::vec3& lookDirection()
const {
return m_front; }
48 glm::quat
rotation(
bool ignorePitch)
const;
50 void lookAt(
const glm::vec3& target);
51 void lookDirection(
const glm::vec3& direction);
53 void rotate(
float dx,
float dy,
bool constrainPitch =
true);
54 void resize(
int width,
int height);
56 glm::mat4 getView()
const;
57 glm::mat4 getProjection()
const {
return m_projection; };
59 float farPlane()
const {
return m_zFar; }
60 float nearPlane()
const {
return m_zNear; }
61 float fov()
const {
return m_fov; }
62 float aspectRatio()
const {
return m_aspectRatio; }
76 const glm::mat4& projection,
const glm::mat4& view
80 glm::vec3 m_worldUp = UP;
88 glm::mat4 m_projection;
89 ProjectionType m_type;
93 float m_zFar = 1200.0f;
94 float m_aspectRatio = 1.0f;
glm::quat rotation(bool ignorePitch) const
Returns the camera's rotation as a quaternion.
Definition Camera.cpp:105
std::array< Plane, 6 > getFrustum() const
Returns the camera's frustum in world space.
Definition Camera.cpp:82
std::array< glm::vec3, 8 > getFrustumCorners() const
Returns the camera's frustum corners in world space.
Definition Camera.cpp:101
Definition EngineEventSite.h:8
Definition EngineEvents.h:6