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

Default camera behavior with WASD movement and mouse look. More...

#include <DefaultBehavior.hpp>

Inheritance diagram for CameraMovement::Utils::DefaultBehavior:
CameraMovement::Utils::ICameraBehavior

Public Member Functions

 DefaultBehavior ()=default
 DefaultBehavior (Engine::Core &core)
 Construct and register camera-related input callbacks.
 ~DefaultBehavior () override
void Update (Engine::Core &core, Resource::CameraManager &manager, Object::Component::Transform &transform, Object::Component::Camera &camera, float deltaTime) override
 Update the camera behavior.
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 HandleTranslation (Input::Resource::InputManager &inputManager, Object::Component::Transform &transform, float speed, float deltaTime)
void HandleJoystickInput (Resource::CameraManager &manager, Object::Component::Transform &transform, float deltaTime)

Static Private Member Functions

static void MouseButtonCallback (Engine::Core &core, int button, int action, int)
static void CursorPosCallback (Engine::Core &core, double xpos, double ypos)

Private Attributes

Engine::Core_core = nullptr
FunctionUtils::FunctionID _mouseButtonCallbackId
FunctionUtils::FunctionID _cursorPosCallbackId

Detailed Description

Default camera behavior with WASD movement and mouse look.

  • WASD controls movement on X and Z axes
  • Space/Shift controls movement on Y axis
  • Right mouse button drag controls camera rotation

Constructor & Destructor Documentation

◆ DefaultBehavior() [1/2]

CameraMovement::Utils::DefaultBehavior::DefaultBehavior ( )
default

◆ DefaultBehavior() [2/2]

CameraMovement::Utils::DefaultBehavior::DefaultBehavior ( Engine::Core & core)
inlineexplicit

Construct and register camera-related input callbacks.

◆ ~DefaultBehavior()

CameraMovement::Utils::DefaultBehavior::~DefaultBehavior ( )
inlineoverride

Member Function Documentation

◆ CursorPosCallback()

void CameraMovement::Utils::DefaultBehavior::CursorPosCallback ( Engine::Core & core,
double xpos,
double ypos )
inlinestaticprivate

◆ HandleJoystickInput()

void CameraMovement::Utils::DefaultBehavior::HandleJoystickInput ( Resource::CameraManager & manager,
Object::Component::Transform & transform,
float deltaTime )
inlineprivate

◆ HandleTranslation()

void CameraMovement::Utils::DefaultBehavior::HandleTranslation ( Input::Resource::InputManager & inputManager,
Object::Component::Transform & transform,
float speed,
float deltaTime )
inlineprivate

◆ MouseButtonCallback()

void CameraMovement::Utils::DefaultBehavior::MouseButtonCallback ( Engine::Core & core,
int button,
int action,
int  )
inlinestaticprivate

◆ Update()

void CameraMovement::Utils::DefaultBehavior::Update ( Engine::Core & core,
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.

Member Data Documentation

◆ _core

Engine::Core* CameraMovement::Utils::DefaultBehavior::_core = nullptr
private

◆ _cursorPosCallbackId

FunctionUtils::FunctionID CameraMovement::Utils::DefaultBehavior::_cursorPosCallbackId
private

◆ _mouseButtonCallbackId

FunctionUtils::FunctionID CameraMovement::Utils::DefaultBehavior::_mouseButtonCallbackId
private

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