Vesper 0.5.1
Vesper is short form for the Latin word for "Bat", as Vesper is designed to be small, lightweight, and easily handle things like particles and flocking behaviors in accordance with the nature of bats. \n It is meant to be a particle simulation, VFX editor, and CAN be used secondarily as a small game engine.
GitHub | Vesper Updates | Creator
Loading...
Searching...
No Matches
Vesper::SceneCamera Class Reference

#include <SceneCamera.h>

Inheritance diagram for Vesper::SceneCamera:
Vesper::Camera

Public Types

enum class  ProjectionType { Perspective = 0 , Orthographic = 1 }

Public Member Functions

 SceneCamera ()
virtual ~SceneCamera ()=default
void SetOrthographic (float size, float nearClip, float farClip)
void SetPerspective (float verticalFOV, float nearClip, float farClip)
void SetViewportSize (uint32_t width, uint32_t height)
float GetPerspectiveVerticalFOV () const
void SetPerspectiveVerticalFOV (float verticalFov)
float GetPerspectiveNearClip () const
void SetPerspectiveNearClip (float nearClip)
float GetPerspectiveFarClip () const
void SetPerspectiveFarClip (float farClip)
float GetOrthographicSize () const
void SetOrthographicSize (float size)
float GetOrthographicNearClip () const
void SetOrthographicNearClip (float nearClip)
float GetOrthographicFarClip () const
void SetOrthographicFarClip (float farClip)
ProjectionType GetProjectionType () const
void SetProjectionType (ProjectionType type)
Public Member Functions inherited from Vesper::Camera
 Camera ()=default
 Camera (const glm::mat4 &projection)
 ~Camera ()=default
const glm::mat4 & GetProjection () const

Private Member Functions

void RecalculateProjection ()

Private Attributes

ProjectionType m_ProjectionType = ProjectionType::Orthographic
float m_PerspectiveFOV = glm::radians(45.0f)
float m_PerspectiveNear = 0.01f
float m_PerspectiveFar = 1000.0f
float m_OrthographicSize = 10.0f
float m_OrthographicNear = -1.0f
float m_OrthographicFar = 1.0f
float m_AspectRatio = 0.0f

Additional Inherited Members

Protected Attributes inherited from Vesper::Camera
glm::mat4 m_Projection = glm::mat4(1.0f)

Member Enumeration Documentation

◆ ProjectionType

Enumerator
Perspective 
Orthographic 
9{ Perspective = 0, Orthographic = 1 };

Constructor & Destructor Documentation

◆ SceneCamera()

Vesper::SceneCamera::SceneCamera ( )
10 {
12 }
void RecalculateProjection()
Definition SceneCamera.cpp:37

References RecalculateProjection().

◆ ~SceneCamera()

virtual Vesper::SceneCamera::~SceneCamera ( )
virtualdefault

Member Function Documentation

◆ GetOrthographicFarClip()

float Vesper::SceneCamera::GetOrthographicFarClip ( ) const
inline
30{ return m_OrthographicFar; }
float m_OrthographicFar
Definition SceneCamera.h:44

References m_OrthographicFar.

◆ GetOrthographicNearClip()

float Vesper::SceneCamera::GetOrthographicNearClip ( ) const
inline
28{ return m_OrthographicNear; }
float m_OrthographicNear
Definition SceneCamera.h:44

References m_OrthographicNear.

◆ GetOrthographicSize()

float Vesper::SceneCamera::GetOrthographicSize ( ) const
inline
26{ return m_OrthographicSize; }
float m_OrthographicSize
Definition SceneCamera.h:43

References m_OrthographicSize.

◆ GetPerspectiveFarClip()

float Vesper::SceneCamera::GetPerspectiveFarClip ( ) const
inline
23{ return m_PerspectiveFar; }
float m_PerspectiveFar
Definition SceneCamera.h:41

References m_PerspectiveFar.

◆ GetPerspectiveNearClip()

float Vesper::SceneCamera::GetPerspectiveNearClip ( ) const
inline
21{ return m_PerspectiveNear; }
float m_PerspectiveNear
Definition SceneCamera.h:41

References m_PerspectiveNear.

◆ GetPerspectiveVerticalFOV()

float Vesper::SceneCamera::GetPerspectiveVerticalFOV ( ) const
inline
19{ return m_PerspectiveFOV; }
float m_PerspectiveFOV
Definition SceneCamera.h:40

◆ GetProjectionType()

ProjectionType Vesper::SceneCamera::GetProjectionType ( ) const
inline
33{ return m_ProjectionType; }
ProjectionType m_ProjectionType
Definition SceneCamera.h:38

References m_ProjectionType.

◆ RecalculateProjection()

void Vesper::SceneCamera::RecalculateProjection ( )
private
38 {
40 {
42 }
43 else
44 {
45 float orthoLeft = -m_OrthographicSize * m_AspectRatio * 0.5f;
46 float orthoRight = m_OrthographicSize * m_AspectRatio * 0.5f;
47 float orthoBottom = -m_OrthographicSize * 0.5f;
48 float orthoTop = m_OrthographicSize * 0.5f;
49
50 m_Projection = glm::ortho(orthoLeft, orthoRight,
51 orthoBottom, orthoTop, m_OrthographicNear, m_OrthographicFar);
52 }
53
54 }
glm::mat4 m_Projection
Definition Camera.h:17
float m_AspectRatio
Definition SceneCamera.h:46
@ Perspective
Definition SceneCamera.h:9

References m_AspectRatio, m_OrthographicSize, m_ProjectionType, and Perspective.

Referenced by SceneCamera(), SetOrthographic(), SetOrthographicFarClip(), SetOrthographicNearClip(), SetOrthographicSize(), SetPerspective(), SetPerspectiveFarClip(), SetPerspectiveNearClip(), SetPerspectiveVerticalFOV(), SetProjectionType(), and SetViewportSize().

◆ SetOrthographic()

void Vesper::SceneCamera::SetOrthographic ( float size,
float nearClip,
float farClip )

◆ SetOrthographicFarClip()

void Vesper::SceneCamera::SetOrthographicFarClip ( float farClip)
inline

◆ SetOrthographicNearClip()

void Vesper::SceneCamera::SetOrthographicNearClip ( float nearClip)
inline

◆ SetOrthographicSize()

void Vesper::SceneCamera::SetOrthographicSize ( float size)
inline

◆ SetPerspective()

void Vesper::SceneCamera::SetPerspective ( float verticalFOV,
float nearClip,
float farClip )

◆ SetPerspectiveFarClip()

void Vesper::SceneCamera::SetPerspectiveFarClip ( float farClip)
inline

◆ SetPerspectiveNearClip()

void Vesper::SceneCamera::SetPerspectiveNearClip ( float nearClip)
inline

◆ SetPerspectiveVerticalFOV()

void Vesper::SceneCamera::SetPerspectiveVerticalFOV ( float verticalFov)
inline
20{ m_PerspectiveFOV = verticalFov; RecalculateProjection(); }

References RecalculateProjection().

◆ SetProjectionType()

void Vesper::SceneCamera::SetProjectionType ( ProjectionType type)
inline

◆ SetViewportSize()

void Vesper::SceneCamera::SetViewportSize ( uint32_t width,
uint32_t height )
32 {
33 m_AspectRatio = (float)width / (float)height;
35 }

References m_AspectRatio, and RecalculateProjection().

Member Data Documentation

◆ m_AspectRatio

float Vesper::SceneCamera::m_AspectRatio = 0.0f
private

◆ m_OrthographicFar

float Vesper::SceneCamera::m_OrthographicFar = 1.0f
private

◆ m_OrthographicNear

float Vesper::SceneCamera::m_OrthographicNear = -1.0f
private

◆ m_OrthographicSize

float Vesper::SceneCamera::m_OrthographicSize = 10.0f
private

◆ m_PerspectiveFar

float Vesper::SceneCamera::m_PerspectiveFar = 1000.0f
private

◆ m_PerspectiveFOV

float Vesper::SceneCamera::m_PerspectiveFOV = glm::radians(45.0f)
private

◆ m_PerspectiveNear

float Vesper::SceneCamera::m_PerspectiveNear = 0.01f
private

◆ m_ProjectionType


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