Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
CameraMovement::Utils::OrbitalChaseBehavior Class Reference

#include <OrbitalChaseBehavior.hpp>

Inheritance diagram for CameraMovement::Utils::OrbitalChaseBehavior:
CameraMovement::Utils::ICameraBehavior

Public Member Functions

 OrbitalChaseBehavior (Engine::Core &core, Engine::Entity target)
 ~OrbitalChaseBehavior () override
void Update (Engine::Core &core, CameraMovement::Resource::CameraManager &manager, Object::Component::Transform &cameraTransform, Object::Component::Camera &, float) override
 Update the camera behavior.
Engine::Entity GetTarget () const
void SetTarget (Engine::Entity newTarget)
float GetScrollSensitivity () const
void SetScrollSensitivity (float newScrollSensitivity)
float GetMinDistance () const
void SetMinDistance (float newMinDistance)
float GetMaxDistance () const
void SetMaxDistance (float newMaxDistance)
Public Member Functions inherited from CameraMovement::Utils::ICameraBehavior
 ICameraBehavior ()=default
 ICameraBehavior (Engine::Core &)
 Optional constructor that receives the engine core.
virtual ~ICameraBehavior ()=default

Private Member Functions

void UpdatePosition (Object::Component::Transform &cameraTransform)
void UpdateRotation (Object::Component::Transform &cameraTransform)
void HandleMouseButton (Engine::Core &, int button, int action, int)
void HandleCursorPos (Engine::Core &core, float xpos, float ypos)
void HandleScroll (Engine::Core &, double, double yoffset)

Private Attributes

Engine::Core_core
Engine::Entity _target
float _yaw = 0.0f
float _pitch = 0.35f
float _distance = 8.0f
float _minDistance = 0.001f
float _maxDistance = 50.0f
float _scrollSensitivity = 1.1f
bool _isDragging = false
float _lastMouseX = 0.0
float _lastMouseY = 0.0
FunctionUtils::FunctionID _mouseButtonCallbackId = 0
FunctionUtils::FunctionID _cursorPosCallbackId = 0
FunctionUtils::FunctionID _scrollCallbackId = 0
bool _hasWarnedInvalidTarget = false

Constructor & Destructor Documentation

◆ OrbitalChaseBehavior()

CameraMovement::Utils::OrbitalChaseBehavior::OrbitalChaseBehavior ( Engine::Core & core,
Engine::Entity target )
inlineexplicit

◆ ~OrbitalChaseBehavior()

CameraMovement::Utils::OrbitalChaseBehavior::~OrbitalChaseBehavior ( )
inlineoverride

Member Function Documentation

◆ GetMaxDistance()

float CameraMovement::Utils::OrbitalChaseBehavior::GetMaxDistance ( ) const
inline

◆ GetMinDistance()

float CameraMovement::Utils::OrbitalChaseBehavior::GetMinDistance ( ) const
inline

◆ GetScrollSensitivity()

float CameraMovement::Utils::OrbitalChaseBehavior::GetScrollSensitivity ( ) const
inline

◆ GetTarget()

Engine::Entity CameraMovement::Utils::OrbitalChaseBehavior::GetTarget ( ) const
inline

◆ HandleCursorPos()

void CameraMovement::Utils::OrbitalChaseBehavior::HandleCursorPos ( Engine::Core & core,
float xpos,
float ypos )
inlineprivate

◆ HandleMouseButton()

void CameraMovement::Utils::OrbitalChaseBehavior::HandleMouseButton ( Engine::Core & ,
int button,
int action,
int  )
inlineprivate

◆ HandleScroll()

void CameraMovement::Utils::OrbitalChaseBehavior::HandleScroll ( Engine::Core & ,
double ,
double yoffset )
inlineprivate

◆ SetMaxDistance()

void CameraMovement::Utils::OrbitalChaseBehavior::SetMaxDistance ( float newMaxDistance)
inline

◆ SetMinDistance()

void CameraMovement::Utils::OrbitalChaseBehavior::SetMinDistance ( float newMinDistance)
inline

◆ SetScrollSensitivity()

void CameraMovement::Utils::OrbitalChaseBehavior::SetScrollSensitivity ( float newScrollSensitivity)
inline

◆ SetTarget()

void CameraMovement::Utils::OrbitalChaseBehavior::SetTarget ( Engine::Entity newTarget)
inline

◆ Update()

void CameraMovement::Utils::OrbitalChaseBehavior::Update ( Engine::Core & core,
CameraMovement::Resource::CameraManager & manager,
Object::Component::Transform & transform,
Object::Component::Camera & camera,
float deltaTime )
inlineoverridevirtual

Update the camera behavior.

Parameters
coreThe engine core.
managerThe camera manager.
transformThe transform component of the camera.
cameraThe camera component.
deltaTimeThe time elapsed since the last frame.

Implements CameraMovement::Utils::ICameraBehavior.

◆ UpdatePosition()

void CameraMovement::Utils::OrbitalChaseBehavior::UpdatePosition ( Object::Component::Transform & cameraTransform)
inlineprivate

◆ UpdateRotation()

void CameraMovement::Utils::OrbitalChaseBehavior::UpdateRotation ( Object::Component::Transform & cameraTransform)
inlineprivate

Member Data Documentation

◆ _core

Engine::Core* CameraMovement::Utils::OrbitalChaseBehavior::_core
private

◆ _cursorPosCallbackId

FunctionUtils::FunctionID CameraMovement::Utils::OrbitalChaseBehavior::_cursorPosCallbackId = 0
private

◆ _distance

float CameraMovement::Utils::OrbitalChaseBehavior::_distance = 8.0f
private

◆ _hasWarnedInvalidTarget

bool CameraMovement::Utils::OrbitalChaseBehavior::_hasWarnedInvalidTarget = false
private

◆ _isDragging

bool CameraMovement::Utils::OrbitalChaseBehavior::_isDragging = false
private

◆ _lastMouseX

float CameraMovement::Utils::OrbitalChaseBehavior::_lastMouseX = 0.0
private

◆ _lastMouseY

float CameraMovement::Utils::OrbitalChaseBehavior::_lastMouseY = 0.0
private

◆ _maxDistance

float CameraMovement::Utils::OrbitalChaseBehavior::_maxDistance = 50.0f
private

◆ _minDistance

float CameraMovement::Utils::OrbitalChaseBehavior::_minDistance = 0.001f
private

◆ _mouseButtonCallbackId

FunctionUtils::FunctionID CameraMovement::Utils::OrbitalChaseBehavior::_mouseButtonCallbackId = 0
private

◆ _pitch

float CameraMovement::Utils::OrbitalChaseBehavior::_pitch = 0.35f
private

◆ _scrollCallbackId

FunctionUtils::FunctionID CameraMovement::Utils::OrbitalChaseBehavior::_scrollCallbackId = 0
private

◆ _scrollSensitivity

float CameraMovement::Utils::OrbitalChaseBehavior::_scrollSensitivity = 1.1f
private

◆ _target

Engine::Entity CameraMovement::Utils::OrbitalChaseBehavior::_target
private

◆ _yaw

float CameraMovement::Utils::OrbitalChaseBehavior::_yaw = 0.0f
private

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