28 inline const glm::vec3&
GetFrontVec()
const {
return m_front; }
29 inline const glm::vec3&
GetRightVec()
const {
return m_right; }
30 inline const glm::vec3&
GetUpVec()
const {
return m_up; }
32 inline const float GetFOV()
const {
return m_FOV; }
33 inline void SetFOV(
float fov);
36 inline const float GetNear()
const {
return m_near; }
37 inline void SetNear(
float nearPlane);
39 inline const float GetFar()
const {
return m_far; }
40 inline void SetFar(
float farPlane);
55 void DrawDebugFrustum();
56 std::array<glm::vec3, 8> CalculateFrustumCorners(
float visualFarScale = 0.5f);
62 glm::mat4 GenProjectionMatrix();
63 void UpdateProjectionMatrix();
74 glm::mat4 m_projectionMatrix;
76 bool m_canBeMainCamera =
true;
#define EXPOSE(param,...)
const float GetNear() const
const float GetAspectRatio() const
BEGIN_COMPONENT(Camera, EditorIcon(std::string(Editor::Icons::COMPONENT_ICON_CAMERA))) Camera(float fov
void UpdateCameraVectors()
void OnSetRotation() override
void SetNear(float nearPlane)
const void UpdateAspectRatio(float aspectRatio)
void SetFar(float farPlane)
const glm::mat4 & GetProjectionMatrix() const
const glm::vec3 & GetRightVec() const
glm::mat4 GenViewMatrix() const
const glm::vec3 & GetUpVec() const
const float GetFOV() const
glm::mat4 GenViewProjectionMatrix() const
const float GetFar() const
const glm::vec3 & GetFrontVec() const
void RenderWhenSelected() override
constexpr std::string_view COMPONENT_ICON_CAMERA
std::shared_ptr< Camera > CameraPtr