Elevate Engine 1
Loading...
Searching...
No Matches
Elevate::Camera Class Reference

#include <Camera.h>

Inheritance diagram for Elevate::Camera:
Elevate::Component EEObject Elevate::EditorCamera

Public Member Functions

 BEGIN_COMPONENT (Camera, EditorIcon(std::string(Editor::Icons::COMPONENT_ICON_CAMERA))) Camera(float fov
 
 Camera (float fov, float aspectRatio, bool overrideCurrent=true)
 
const void UpdateAspectRatio (float aspectRatio)
 
const glm::mat4 & GetProjectionMatrix () const
 
glm::mat4 GenViewMatrix () const
 
const glm::vec3 & GetFrontVec () const
 
const glm::vec3 & GetRightVec () const
 
const glm::vec3 & GetUpVec () const
 
const float GetFOV () const
 
void SetFOV (float fov)
 
const float GetNear () const
 
void SetNear (float nearPlane)
 
const float GetFar () const
 
void SetFar (float farPlane)
 
const float GetAspectRatio () const
 
void UpdateCameraVectors ()
 
glm::mat4 GenViewProjectionMatrix () const
 
void Init () override
 
void Destroy () override
 
void OnSetRotation () override
 
void RenderWhenSelected () override
 
- Public Member Functions inherited from Elevate::Component
 Component ()=default
 
virtual ~Component ()=default
 
virtual ComponentClone ()=0
 
virtual void CopyFrom (Component *other)=0
 
virtual GameObjectComponentFactory GetFactory () const =0
 
virtual GameObjectComponentDestructor GetDestructor () const =0
 
virtual const void * GetEditorIconHandle () const
 
virtual std::type_index GetTypeIndex () const =0
 
void SetActive (bool newState)
 
bool IsActive ()
 
virtual ComponentLayout GetLayout () const
 
virtual bool RemoveFromGameObject ()
 
virtual std::string GetName () const
 
- Public Member Functions inherited from EEObject
virtual EECategory GetCategory () const
 

Public Attributes

bool overrideCurrent = true)
 
- Public Attributes inherited from Elevate::Component
std::function< bool()> RemoveFromGOFunc
 
GameObjectgameObject = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from Elevate::Component
virtual void Update ()
 
virtual void Render ()
 
virtual void RenderInEditor ()
 
virtual void OnSetPosition ()
 
virtual void OnSetScale ()
 
virtual void OnNotify (Event &event)
 
- Protected Attributes inherited from Elevate::Component
bool m_IsActive = true
 
- Protected Attributes inherited from EEObject
EECategory m_category
 

Detailed Description

Definition at line 13 of file Camera.h.

Constructor & Destructor Documentation

◆ Camera()

Elevate::Camera::Camera ( float  fov,
float  aspectRatio,
bool  overrideCurrent = true 
)

Definition at line 13 of file Camera.cpp.

14{
15 m_FOV = fov;
16 Window& window = Application::Get().GetWindow();
17 m_aspectRatio = (float)window.GetWidth() / (float)window.GetHeight();
18
19 m_canBeMainCamera = overrideCurrent;
20}
static Application & Get()
Definition Application.h:62
bool overrideCurrent
Definition Camera.h:20

Member Function Documentation

◆ BEGIN_COMPONENT()

Elevate::Camera::BEGIN_COMPONENT ( Camera  ,
EditorIcon(std::string(Editor::Icons::COMPONENT_ICON_CAMERA))   
)

◆ Destroy()

void Elevate::Camera::Destroy ( )
overridevirtual

Reimplemented from Elevate::Component.

Definition at line 45 of file Camera.cpp.

46{
48}
static void NotifyDestruction(Camera *camera)

◆ GenViewMatrix()

glm::mat4 Elevate::Camera::GenViewMatrix ( ) const

Definition at line 69 of file Camera.cpp.

70{
71 return glm::lookAt(gameObject->GetPosition(), gameObject->GetPosition() + m_front, m_up);
72}
GameObject * gameObject
Definition Component.h:73

◆ GenViewProjectionMatrix()

glm::mat4 Elevate::Camera::GenViewProjectionMatrix ( ) const

Definition at line 64 of file Camera.cpp.

65{
66 return m_projectionMatrix * GenViewMatrix();
67}
glm::mat4 GenViewMatrix() const
Definition Camera.cpp:69

◆ GetAspectRatio()

const float Elevate::Camera::GetAspectRatio ( ) const
inline

Definition at line 42 of file Camera.h.

42{ return m_aspectRatio; }

◆ GetFar()

const float Elevate::Camera::GetFar ( ) const
inline

Definition at line 39 of file Camera.h.

39{ return m_far; }

◆ GetFOV()

const float Elevate::Camera::GetFOV ( ) const
inline

Definition at line 32 of file Camera.h.

32{ return m_FOV; }

◆ GetFrontVec()

const glm::vec3 & Elevate::Camera::GetFrontVec ( ) const
inline

Definition at line 28 of file Camera.h.

28{ return m_front; }

◆ GetNear()

const float Elevate::Camera::GetNear ( ) const
inline

Definition at line 36 of file Camera.h.

36{ return m_near; }

◆ GetProjectionMatrix()

const glm::mat4 & Elevate::Camera::GetProjectionMatrix ( ) const
inline

Definition at line 25 of file Camera.h.

25{ return m_projectionMatrix; }

◆ GetRightVec()

const glm::vec3 & Elevate::Camera::GetRightVec ( ) const
inline

Definition at line 29 of file Camera.h.

29{ return m_right; }

◆ GetUpVec()

const glm::vec3 & Elevate::Camera::GetUpVec ( ) const
inline

Definition at line 30 of file Camera.h.

30{ return m_up; }

◆ Init()

void Elevate::Camera::Init ( )
overridevirtual

Reimplemented from Elevate::Component.

Reimplemented in Elevate::EditorCamera.

Definition at line 31 of file Camera.cpp.

32{
33 UpdateProjectionMatrix();
35
36 if (m_canBeMainCamera)
37 {
39 }
40
41 // todo : change this bit of code to be in the camera manager
43}
static void SetCurrent(Camera *current)
void UpdateCameraVectors()
Definition Camera.cpp:111
static void SetDefaultListener(GameObject *obj)

◆ OnSetRotation()

void Elevate::Camera::OnSetRotation ( )
overridevirtual

Reimplemented from Elevate::Component.

Definition at line 50 of file Camera.cpp.

51{
53}

◆ RenderWhenSelected()

void Elevate::Camera::RenderWhenSelected ( )
inlineoverridevirtual

Reimplemented from Elevate::Component.

Definition at line 58 of file Camera.h.

58{}

◆ SetFar()

void Elevate::Camera::SetFar ( float  farPlane)
inline

Definition at line 92 of file Camera.cpp.

93{
94 if (m_far != farPlane)
95 {
96 m_far = farPlane;
97 UpdateProjectionMatrix();
98 }
99}

◆ SetFOV()

void Elevate::Camera::SetFOV ( float  fov)
inline

Definition at line 74 of file Camera.cpp.

75{
76 if (m_FOV != fov)
77 {
78 m_FOV = fov;
79 UpdateProjectionMatrix();
80 }
81}

◆ SetNear()

void Elevate::Camera::SetNear ( float  nearPlane)
inline

Definition at line 83 of file Camera.cpp.

84{
85 if (m_near != nearPlane)
86 {
87 m_near = nearPlane;
88 UpdateProjectionMatrix();
89 }
90}

◆ UpdateAspectRatio()

const void Elevate::Camera::UpdateAspectRatio ( float  aspectRatio)

Definition at line 55 of file Camera.cpp.

56{
57 if (m_aspectRatio != aspectRatio)
58 {
59 m_aspectRatio = aspectRatio;
60 UpdateProjectionMatrix();
61 }
62}

◆ UpdateCameraVectors()

void Elevate::Camera::UpdateCameraVectors ( )

Definition at line 111 of file Camera.cpp.

112{
113 float pitch = glm::radians(gameObject->GetRotation().x);
114 float yaw = glm::radians(gameObject->GetRotation().y);
115
116 glm::vec3 front;
117 front.x = cos(yaw) * cos(pitch);
118 front.y = sin(pitch);
119 front.z = sin(yaw) * cos(pitch);
120 m_front = glm::normalize(front);
121
122 m_right = glm::normalize(glm::cross(glm::vec3(0.0f, 1.0f, 0.0f), m_front));
123
124 m_up = glm::normalize(glm::cross(m_front, m_right));
125}

Member Data Documentation

◆ overrideCurrent

bool Elevate::Camera::overrideCurrent = true)

Definition at line 20 of file Camera.h.


The documentation for this class was generated from the following files: