Voltray Engine Docs
Loading...
Searching...
No Matches
PerspectiveCamera Class Reference

Base class for all perspective projection cameras. More...

#include <PerspectiveCamera.h>

Inheritance diagram for PerspectiveCamera:
Collaboration diagram for PerspectiveCamera:

Public Member Functions

 PerspectiveCamera (const std::string &name, float fovDeg, float aspect, float nearPlane, float farPlane)
 Constructor for perspective camera.
 
virtual void SetFieldOfView (float fovDeg)
 
virtual float GetFieldOfView () const
 
virtual Mat4 GetProjectionMatrix () const override
 
virtual Ray ScreenToWorldRay (float screenX, float screenY) const override
 
virtual CameraType GetType () const override
 
virtual std::string GetTypeName () const override
 
- Public Member Functions inherited from BaseCamera
 BaseCamera (const std::string &name, float aspect, float nearPlane, float farPlane)
 Constructor with basic camera parameters.
 
virtual ~BaseCamera ()
 Virtual destructor.
 
virtual Mat4 GetViewMatrix () const
 
virtual Mat4 GetViewProjectionMatrix () const
 
virtual void SetPosition (const Vec3 &position)
 
virtual void SetTarget (const Vec3 &target)
 
virtual void SetUp (const Vec3 &up)
 
virtual void LookAt (const Vec3 &position, const Vec3 &target, const Vec3 &up)
 
virtual void SetAspectRatio (float aspect)
 
virtual void SetClippingPlanes (float nearPlane, float farPlane)
 
virtual void SetName (const std::string &name)
 
const Vec3GetPosition () const
 
const Vec3GetTarget () const
 
const Vec3GetUp () const
 
Vec3 GetForward () const
 
Vec3 GetRight () const
 
float GetAspectRatio () const
 
float GetNearPlane () const
 
float GetFarPlane () const
 
const std::string & GetName () const
 
virtual void Update ()
 
virtual void ProcessInput ()
 
virtual void SetInputEnabled (bool enabled)
 
virtual void SetMouseMovementActive (bool active)
 
virtual bool IsInputEnabled () const
 
virtual void SetViewportBounds (float x, float y, float width, float height)
 
virtual bool IsMouseInViewport () const
 
virtual void SetTransform (const Mat4 &transform)
 
virtual Mat4 GetTransform () const
 
virtual void FocusOnObjectSmooth (const Vec3 &objectPosition, float duration=1.0f)
 
virtual CameraAnimatorGetAnimator ()
 
virtual bool IsAnimating () const
 

Protected Member Functions

virtual Mat4 CreatePerspectiveMatrix (float fov, float aspect, float nearPlane, float farPlane) const
 
virtual Mat4 ApplyPerspectiveCorrection (const Mat4 &baseProjection) const
 
- Protected Member Functions inherited from BaseCamera
virtual void ProcessMouseInput ()
 
virtual void ProcessKeyboardInput ()
 
virtual void ProcessScrollInput ()
 
virtual void UpdatePositionFromAngles ()
 
virtual void UpdateAnglesFromPosition ()
 
virtual void Zoom (float delta)
 
virtual void FocusOnObject (const Vec3 &objectPosition)
 
void UpdateViewMatrix () const
 

Protected Attributes

float m_Fov
 
- Protected Attributes inherited from BaseCamera
std::string m_Name
 
Vec3 m_Position {0.0f, 0.0f, 3.0f}
 
Vec3 m_Target {0.0f, 0.0f, 0.0f}
 
Vec3 m_Up {0.0f, 1.0f, 0.0f}
 
float m_Aspect
 
float m_Near
 
float m_Far
 
bool m_InputEnabled = true
 
bool m_isMouseMovementActive = true
 
float m_MouseSensitivity = 0.1f
 
float m_ZoomSpeed = 1.0f
 
bool m_CursorHidden = false
 
float m_Yaw = -90.0f
 
float m_Pitch = 0.0f
 
float m_Distance = 3.0f
 
float m_ViewportX = 0.0f
 
float m_ViewportY = 0.0f
 
float m_ViewportWidth = 0.0f
 
float m_ViewportHeight = 0.0f
 
std::unique_ptr< CameraAnimatorm_Animator
 
Mat4 m_ViewMatrix
 
bool m_ViewMatrixDirty = true
 

Additional Inherited Members

- Static Public Member Functions inherited from BaseCamera
static std::unique_ptr< BaseCameraCreate (CameraType type, const std::string &name="", float aspect=16.0f/9.0f, float nearPlane=0.1f, float farPlane=1000.0f)
 

Detailed Description

Base class for all perspective projection cameras.

This class provides common functionality for perspective cameras, including field of view management and basic perspective projection. Derived classes implement specific perspective projection types.

Constructor & Destructor Documentation

◆ PerspectiveCamera()

PerspectiveCamera::PerspectiveCamera ( const std::string &  name,
float  fovDeg,
float  aspect,
float  nearPlane,
float  farPlane 
)

Constructor for perspective camera.

Parameters
nameCamera name
fovDegField of view in degrees
aspectAspect ratio
nearPlaneNear clipping plane
farPlaneFar clipping plane

Member Function Documentation

◆ ApplyPerspectiveCorrection()

Mat4 PerspectiveCamera::ApplyPerspectiveCorrection ( const Mat4 baseProjection) const
protectedvirtual

◆ CreatePerspectiveMatrix()

Mat4 PerspectiveCamera::CreatePerspectiveMatrix ( float  fov,
float  aspect,
float  nearPlane,
float  farPlane 
) const
protectedvirtual

◆ GetFieldOfView()

virtual float PerspectiveCamera::GetFieldOfView ( ) const
inlinevirtual

◆ GetProjectionMatrix()

Mat4 PerspectiveCamera::GetProjectionMatrix ( ) const
overridevirtual

Implements BaseCamera.

◆ GetType()

virtual CameraType PerspectiveCamera::GetType ( ) const
inlineoverridevirtual

Implements BaseCamera.

◆ GetTypeName()

virtual std::string PerspectiveCamera::GetTypeName ( ) const
inlineoverridevirtual

Implements BaseCamera.

◆ ScreenToWorldRay()

Ray PerspectiveCamera::ScreenToWorldRay ( float  screenX,
float  screenY 
) const
overridevirtual

Implements BaseCamera.

◆ SetFieldOfView()

void PerspectiveCamera::SetFieldOfView ( float  fovDeg)
virtual

Member Data Documentation

◆ m_Fov

float PerspectiveCamera::m_Fov
protected

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