SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
Sleak::CameraController Class Referenceabstract

#include <CameraController.hpp>

Inheritance diagram for Sleak::CameraController:

Public Member Functions

 CameraController (GameObject *object)
 ~CameraController () override=default
CameraGetCamera ()
 Casts the owning GameObject to Camera; valid only when attached to one.
virtual float GetSensitivity () const
virtual bool Initialize ()
 One-time setup, called after the component is attached and the owner is initialized.
virtual bool IsEnabled () const
virtual void SetEnabled (bool enabled)
virtual void SetSensitivity (float sensitivity)
virtual void ToggleCursor (bool enable)=0
 Shows or hides the OS cursor and, typically, toggles relative mouse mode.
virtual void Update (float deltaTime)=0
Public Member Functions inherited from Sleak::Component
 Component (GameObject *object)
virtual ~Component ()=default
virtual void FixedUpdate (float fixedDeltaTime)
GameObjectGetOwner ()
virtual void LateUpdate (float deltaTime)
virtual void OnDestroy ()
 Called when the component is detached or the owner is destroyed.
virtual void OnDisable ()
virtual void OnEnable ()
Public Member Functions inherited from Sleak::Object
 Object (const std::string &name="Object")
virtual ~Object ()=default
const std::string & GetName () const
uint64_t GetUniqueID () const
void SetName (const std::string &value)

Protected Member Functions

virtual void UpdateCamera (float deltaTime)=0
 Applies accumulated input to the camera's position/orientation.
virtual void UpdateInput (float deltaTime)=0
 Polls raw input devices and updates translation/rotation input state.

Protected Attributes

Cameracamera = nullptr
bool isEnabled = true
Math::Vector2D LastMousePosition
Math::Vector2D MousePosition
Math::Vector3D rotationInput
float sensitivity = 0.0f
Math::Vector3D translationInput
Protected Attributes inherited from Sleak::Component
bool bIsInitialized
GameObjectowner

Detailed Description

Base for components that drive a Camera GameObject from input. Concrete controllers (first-person, free-look) implement UpdateInput/UpdateCamera.

Definition at line 14 of file CameraController.hpp.

Constructor & Destructor Documentation

◆ CameraController()

Sleak::CameraController::CameraController ( GameObject * object)
inline

Definition at line 16 of file CameraController.hpp.

◆ ~CameraController()

Sleak::CameraController::~CameraController ( )
overridedefault

Member Function Documentation

◆ GetCamera()

Camera * Sleak::CameraController::GetCamera ( )
inline

Casts the owning GameObject to Camera; valid only when attached to one.

Definition at line 38 of file CameraController.hpp.

◆ GetSensitivity()

virtual float Sleak::CameraController::GetSensitivity ( ) const
inlinevirtual

Definition at line 35 of file CameraController.hpp.

◆ Initialize()

virtual bool Sleak::CameraController::Initialize ( )
inlinevirtual

One-time setup, called after the component is attached and the owner is initialized.

Implements Sleak::Component.

Reimplemented in Sleak::FirstPersonController, and Sleak::FreeLookCameraController.

Definition at line 19 of file CameraController.hpp.

◆ IsEnabled()

virtual bool Sleak::CameraController::IsEnabled ( ) const
inlinevirtual

Definition at line 33 of file CameraController.hpp.

◆ SetEnabled()

virtual void Sleak::CameraController::SetEnabled ( bool enabled)
inlinevirtual

Reimplemented in Sleak::FirstPersonController, and Sleak::FreeLookCameraController.

Definition at line 32 of file CameraController.hpp.

◆ SetSensitivity()

virtual void Sleak::CameraController::SetSensitivity ( float sensitivity)
inlinevirtual

Definition at line 34 of file CameraController.hpp.

◆ ToggleCursor()

virtual void Sleak::CameraController::ToggleCursor ( bool enable)
pure virtual

Shows or hides the OS cursor and, typically, toggles relative mouse mode.

Implemented in Sleak::FirstPersonController, and Sleak::FreeLookCameraController.

◆ Update()

virtual void Sleak::CameraController::Update ( float deltaTime)
pure virtual

◆ UpdateCamera()

virtual void Sleak::CameraController::UpdateCamera ( float deltaTime)
protectedpure virtual

Applies accumulated input to the camera's position/orientation.

◆ UpdateInput()

virtual void Sleak::CameraController::UpdateInput ( float deltaTime)
protectedpure virtual

Polls raw input devices and updates translation/rotation input state.

Member Data Documentation

◆ camera

Camera* Sleak::CameraController::camera = nullptr
protected

Definition at line 55 of file CameraController.hpp.

◆ isEnabled

bool Sleak::CameraController::isEnabled = true
protected

Definition at line 49 of file CameraController.hpp.

◆ LastMousePosition

Math::Vector2D Sleak::CameraController::LastMousePosition
protected

Definition at line 53 of file CameraController.hpp.

◆ MousePosition

Math::Vector2D Sleak::CameraController::MousePosition
protected

Definition at line 53 of file CameraController.hpp.

◆ rotationInput

Math::Vector3D Sleak::CameraController::rotationInput
protected

Definition at line 52 of file CameraController.hpp.

◆ sensitivity

float Sleak::CameraController::sensitivity = 0.0f
protected

Definition at line 48 of file CameraController.hpp.

◆ translationInput

Math::Vector3D Sleak::CameraController::translationInput
protected

Definition at line 51 of file CameraController.hpp.