Base class for all perspective projection cameras. More...
#include <PerspectiveCamera.h>


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 Vec3 & | GetPosition () const |
| const Vec3 & | GetTarget () const |
| const Vec3 & | GetUp () 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 CameraAnimator & | GetAnimator () |
| 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< CameraAnimator > | m_Animator |
| Mat4 | m_ViewMatrix |
| bool | m_ViewMatrixDirty = true |
Additional Inherited Members | |
Static Public Member Functions inherited from BaseCamera | |
| static std::unique_ptr< BaseCamera > | Create (CameraType type, const std::string &name="", float aspect=16.0f/9.0f, float nearPlane=0.1f, float farPlane=1000.0f) |
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.
| PerspectiveCamera::PerspectiveCamera | ( | const std::string & | name, |
| float | fovDeg, | ||
| float | aspect, | ||
| float | nearPlane, | ||
| float | farPlane | ||
| ) |
Constructor for perspective camera.
| name | Camera name |
| fovDeg | Field of view in degrees |
| aspect | Aspect ratio |
| nearPlane | Near clipping plane |
| farPlane | Far clipping plane |
|
protectedvirtual |
|
protectedvirtual |
|
inlinevirtual |
|
overridevirtual |
Implements BaseCamera.
|
inlineoverridevirtual |
Implements BaseCamera.
|
inlineoverridevirtual |
Implements BaseCamera.
|
overridevirtual |
Implements BaseCamera.
|
virtual |
|
protected |