Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
ThirdPlayerCameraBehavior Class Reference
Inheritance diagram for ThirdPlayerCameraBehavior:
CameraMovement::Utils::ICameraBehavior

Public Member Functions

 ThirdPlayerCameraBehavior (Engine::Core &core, Engine::Entity target)
 ~ThirdPlayerCameraBehavior () 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

Constructor & Destructor Documentation

◆ ThirdPlayerCameraBehavior()

ThirdPlayerCameraBehavior::ThirdPlayerCameraBehavior ( Engine::Core & core,
Engine::Entity target )
inlineexplicit

◆ ~ThirdPlayerCameraBehavior()

ThirdPlayerCameraBehavior::~ThirdPlayerCameraBehavior ( )
inlineoverride

Member Function Documentation

◆ GetMaxDistance()

float ThirdPlayerCameraBehavior::GetMaxDistance ( ) const
inline

◆ GetMinDistance()

float ThirdPlayerCameraBehavior::GetMinDistance ( ) const
inline

◆ GetScrollSensitivity()

float ThirdPlayerCameraBehavior::GetScrollSensitivity ( ) const
inline

◆ GetTarget()

Engine::Entity ThirdPlayerCameraBehavior::GetTarget ( ) const
inline

◆ HandleCursorPos()

void ThirdPlayerCameraBehavior::HandleCursorPos ( Engine::Core & core,
float xpos,
float ypos )
inlineprivate

◆ HandleMouseButton()

void ThirdPlayerCameraBehavior::HandleMouseButton ( Engine::Core & ,
int button,
int action,
int  )
inlineprivate

◆ HandleScroll()

void ThirdPlayerCameraBehavior::HandleScroll ( Engine::Core & ,
double ,
double yoffset )
inlineprivate

◆ SetMaxDistance()

void ThirdPlayerCameraBehavior::SetMaxDistance ( float newMaxDistance)
inline

◆ SetMinDistance()

void ThirdPlayerCameraBehavior::SetMinDistance ( float newMinDistance)
inline

◆ SetScrollSensitivity()

void ThirdPlayerCameraBehavior::SetScrollSensitivity ( float newScrollSensitivity)
inline

◆ SetTarget()

void ThirdPlayerCameraBehavior::SetTarget ( Engine::Entity newTarget)
inline

◆ Update()

void ThirdPlayerCameraBehavior::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 ThirdPlayerCameraBehavior::UpdatePosition ( Object::Component::Transform & cameraTransform)
inlineprivate

◆ UpdateRotation()

void ThirdPlayerCameraBehavior::UpdateRotation ( Object::Component::Transform & cameraTransform)
inlineprivate

Member Data Documentation

◆ _core

Engine::Core* ThirdPlayerCameraBehavior::_core
private

◆ _cursorPosCallbackId

FunctionUtils::FunctionID ThirdPlayerCameraBehavior::_cursorPosCallbackId = 0
private

◆ _distance

float ThirdPlayerCameraBehavior::_distance = 8.0f
private

◆ _isDragging

bool ThirdPlayerCameraBehavior::_isDragging = false
private

◆ _lastMouseX

float ThirdPlayerCameraBehavior::_lastMouseX = 0.0
private

◆ _lastMouseY

float ThirdPlayerCameraBehavior::_lastMouseY = 0.0
private

◆ _maxDistance

float ThirdPlayerCameraBehavior::_maxDistance = 50.0f
private

◆ _minDistance

float ThirdPlayerCameraBehavior::_minDistance = 0.001f
private

◆ _mouseButtonCallbackId

FunctionUtils::FunctionID ThirdPlayerCameraBehavior::_mouseButtonCallbackId = 0
private

◆ _pitch

float ThirdPlayerCameraBehavior::_pitch = 0.35f
private

◆ _scrollCallbackId

FunctionUtils::FunctionID ThirdPlayerCameraBehavior::_scrollCallbackId = 0
private

◆ _scrollSensitivity

float ThirdPlayerCameraBehavior::_scrollSensitivity = 1.1f
private

◆ _target

Engine::Entity ThirdPlayerCameraBehavior::_target
private

◆ _yaw

float ThirdPlayerCameraBehavior::_yaw = 0.0f
private

The documentation for this class was generated from the following file:
  • examples/character_controller_usage/src/main.cpp