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

#include <FreeLookCameraController.hpp>

Inheritance diagram for Sleak::FreeLookCameraController:

Public Member Functions

 FreeLookCameraController (GameObject *object)
 ~FreeLookCameraController () override
virtual float GetAcceleration () const
virtual float GetDamping () const
bool GetInvertY () const
virtual float GetMaxSpeed () const
float GetPitch () const
Math::Vector2D GetPitchRange () const
float GetRoll () const
Math::Vector2D GetRollRange () const
virtual float GetSpeed () const
Math::Vector3D GetTranslationInput () const
virtual Math::Vector3D GetVelocity () const
float GetYaw () const
Math::Vector2D GetYawRange () const
bool Initialize () override
 Derives initial yaw/pitch from the camera's current facing direction.
virtual void OnKeyPressed (const Sleak::Events::Input::KeyPressedEvent &e)
 Updates translation input state from a key-down event; doubles speed while LCTRL is held.
virtual void OnKeyReleased (const Sleak::Events::Input::KeyReleasedEvent &e)
 Clears translation input state from a key-up event.
virtual void SetAcceleration (float acceleration)
virtual void SetDamping (float damping)
void SetEnabled (bool enabled) override
 Toggles relative mouse mode and, when re-enabling, resets velocity and re-syncs yaw/pitch.
void SetInvertY (bool invert)
virtual void SetMaxSpeed (float maxSpeed)
void SetPitch (float pitch)
void SetPitchRange (Math::Vector2D range)
void SetRoll (float roll)
void SetRollRange (Math::Vector2D range)
virtual void SetSpeed (float speed)
void SetYaw (float yaw)
void SetYawRange (Math::Vector2D range)
void ToggleCursor (bool enable) override
 Shows or hides the OS cursor and, typically, toggles relative mouse mode.
void Update (float deltaTime) override
Public Member Functions inherited from Sleak::CameraController
 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 IsEnabled () const
virtual void SetSensitivity (float sensitivity)
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)

Additional Inherited Members

Protected Attributes inherited from Sleak::CameraController
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

Editor/spectator-style camera controller: mouse-look plus accelerated free translation, independent of gravity or collision.

Definition at line 13 of file FreeLookCameraController.hpp.

Constructor & Destructor Documentation

◆ FreeLookCameraController()

Sleak::FreeLookCameraController::FreeLookCameraController ( GameObject * object)

Definition at line 12 of file FreeLookCameraControllerComponent.cpp.

◆ ~FreeLookCameraController()

Sleak::FreeLookCameraController::~FreeLookCameraController ( )
override

Definition at line 32 of file FreeLookCameraControllerComponent.cpp.

Member Function Documentation

◆ GetAcceleration()

virtual float Sleak::FreeLookCameraController::GetAcceleration ( ) const
inlinevirtual

Definition at line 29 of file FreeLookCameraController.hpp.

◆ GetDamping()

virtual float Sleak::FreeLookCameraController::GetDamping ( ) const
inlinevirtual

Definition at line 31 of file FreeLookCameraController.hpp.

◆ GetInvertY()

bool Sleak::FreeLookCameraController::GetInvertY ( ) const
inline

Definition at line 39 of file FreeLookCameraController.hpp.

◆ GetMaxSpeed()

virtual float Sleak::FreeLookCameraController::GetMaxSpeed ( ) const
inlinevirtual

Definition at line 33 of file FreeLookCameraController.hpp.

◆ GetPitch()

float Sleak::FreeLookCameraController::GetPitch ( ) const
inline

Definition at line 49 of file FreeLookCameraController.hpp.

◆ GetPitchRange()

Math::Vector2D Sleak::FreeLookCameraController::GetPitchRange ( ) const
inline

Definition at line 42 of file FreeLookCameraController.hpp.

◆ GetRoll()

float Sleak::FreeLookCameraController::GetRoll ( ) const
inline

Definition at line 53 of file FreeLookCameraController.hpp.

◆ GetRollRange()

Math::Vector2D Sleak::FreeLookCameraController::GetRollRange ( ) const
inline

Definition at line 46 of file FreeLookCameraController.hpp.

◆ GetSpeed()

virtual float Sleak::FreeLookCameraController::GetSpeed ( ) const
inlinevirtual

Definition at line 27 of file FreeLookCameraController.hpp.

◆ GetTranslationInput()

Math::Vector3D Sleak::FreeLookCameraController::GetTranslationInput ( ) const
inline

Definition at line 36 of file FreeLookCameraController.hpp.

◆ GetVelocity()

virtual Math::Vector3D Sleak::FreeLookCameraController::GetVelocity ( ) const
inlinevirtual

Definition at line 34 of file FreeLookCameraController.hpp.

◆ GetYaw()

float Sleak::FreeLookCameraController::GetYaw ( ) const
inline

Definition at line 51 of file FreeLookCameraController.hpp.

◆ GetYawRange()

Math::Vector2D Sleak::FreeLookCameraController::GetYawRange ( ) const
inline

Definition at line 44 of file FreeLookCameraController.hpp.

◆ Initialize()

bool Sleak::FreeLookCameraController::Initialize ( )
overridevirtual

Derives initial yaw/pitch from the camera's current facing direction.

Reimplemented from Sleak::CameraController.

Definition at line 37 of file FreeLookCameraControllerComponent.cpp.

◆ OnKeyPressed()

void Sleak::FreeLookCameraController::OnKeyPressed ( const Sleak::Events::Input::KeyPressedEvent & e)
virtual

Updates translation input state from a key-down event; doubles speed while LCTRL is held.

Definition at line 147 of file FreeLookCameraControllerComponent.cpp.

◆ OnKeyReleased()

void Sleak::FreeLookCameraController::OnKeyReleased ( const Sleak::Events::Input::KeyReleasedEvent & e)
virtual

Clears translation input state from a key-up event.

Definition at line 159 of file FreeLookCameraControllerComponent.cpp.

◆ SetAcceleration()

virtual void Sleak::FreeLookCameraController::SetAcceleration ( float acceleration)
inlinevirtual

Definition at line 28 of file FreeLookCameraController.hpp.

◆ SetDamping()

virtual void Sleak::FreeLookCameraController::SetDamping ( float damping)
inlinevirtual

Definition at line 30 of file FreeLookCameraController.hpp.

◆ SetEnabled()

void Sleak::FreeLookCameraController::SetEnabled ( bool enabled)
overridevirtual

Toggles relative mouse mode and, when re-enabling, resets velocity and re-syncs yaw/pitch.

Reimplemented from Sleak::CameraController.

Definition at line 188 of file FreeLookCameraControllerComponent.cpp.

◆ SetInvertY()

void Sleak::FreeLookCameraController::SetInvertY ( bool invert)
inline

Definition at line 38 of file FreeLookCameraController.hpp.

◆ SetMaxSpeed()

virtual void Sleak::FreeLookCameraController::SetMaxSpeed ( float maxSpeed)
inlinevirtual

Definition at line 32 of file FreeLookCameraController.hpp.

◆ SetPitch()

void Sleak::FreeLookCameraController::SetPitch ( float pitch)
inline

Definition at line 48 of file FreeLookCameraController.hpp.

◆ SetPitchRange()

void Sleak::FreeLookCameraController::SetPitchRange ( Math::Vector2D range)
inline

Definition at line 41 of file FreeLookCameraController.hpp.

◆ SetRoll()

void Sleak::FreeLookCameraController::SetRoll ( float roll)
inline

Definition at line 52 of file FreeLookCameraController.hpp.

◆ SetRollRange()

void Sleak::FreeLookCameraController::SetRollRange ( Math::Vector2D range)
inline

Definition at line 45 of file FreeLookCameraController.hpp.

◆ SetSpeed()

virtual void Sleak::FreeLookCameraController::SetSpeed ( float speed)
inlinevirtual

Definition at line 26 of file FreeLookCameraController.hpp.

◆ SetYaw()

void Sleak::FreeLookCameraController::SetYaw ( float yaw)
inline

Definition at line 50 of file FreeLookCameraController.hpp.

◆ SetYawRange()

void Sleak::FreeLookCameraController::SetYawRange ( Math::Vector2D range)
inline

Definition at line 43 of file FreeLookCameraController.hpp.

◆ ToggleCursor()

void Sleak::FreeLookCameraController::ToggleCursor ( bool enable)
overridevirtual

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

Implements Sleak::CameraController.

Definition at line 60 of file FreeLookCameraControllerComponent.cpp.

◆ Update()

void Sleak::FreeLookCameraController::Update ( float deltaTime)
overridevirtual

Implements Sleak::CameraController.

Definition at line 53 of file FreeLookCameraControllerComponent.cpp.