Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_freecameracontroller.hpp
Go to the documentation of this file.
1#pragma once
2#include "../../foray_glm.hpp"
3#include "../../osi/foray_event.hpp"
4#include "../foray_component.hpp"
5#include <unordered_map>
6
7namespace foray::scene::ncomp {
8
19 {
20 public:
21 virtual void OnEvent(const osi::Event* event) override;
22
23 virtual void Update(SceneUpdateInfo&) override;
24 inline virtual int32_t GetOrder() const override { return 0; }
25
26 FORAY_PROPERTY_V(InvertYAxis)
27 FORAY_PROPERTY_V(InvertAll)
28
29 protected:
31
45
47
48 inline static constexpr float KEYBOARD_ROTATION_SENSIBILITY = 9000.f;
49 float mPitch = 0;
50 float mYaw = 0;
51 inline static constexpr float MOUSE_ROTATION_SENSIBILITY = .05f;
52 bool mUseMouse = false;
53
54 bool mInvertYAxis = false;
55 bool mInvertAll = false;
56
62 };
63} // namespace foray::scene::ncomp
Event type describing a mouse cursor movement event.
Definition foray_event.hpp:135
Base class for operating system events.
Definition foray_event.hpp:13
Base class for implementing the onevent callback.
Definition foray_component.hpp:47
Base class for implementing the update callback.
Definition foray_component.hpp:19
Definition foray_component.hpp:82
A simple camera controller for free flight.
Definition foray_freecameracontroller.hpp:19
bool mUseMouse
Definition foray_freecameracontroller.hpp:52
bool mInvertYAxis
Definition foray_freecameracontroller.hpp:54
virtual void ProcessMouseMovedEvent(const osi::EventInputMouseMoved *event)
virtual void Update(SceneUpdateInfo &) override
float mPitch
Definition foray_freecameracontroller.hpp:49
int mSpeedExponent
Definition foray_freecameracontroller.hpp:46
static constexpr float MOUSE_ROTATION_SENSIBILITY
Definition foray_freecameracontroller.hpp:51
struct foray::scene::ncomp::FreeCameraController::InputStates mInputStates
virtual int32_t GetOrder() const override
Definition foray_freecameracontroller.hpp:24
bool mInvertAll
Definition foray_freecameracontroller.hpp:55
static constexpr float KEYBOARD_ROTATION_SENSIBILITY
Definition foray_freecameracontroller.hpp:48
virtual void OnEvent(const osi::Event *event) override
std::unordered_map< osi::EButton, bool & > mMapping
Definition foray_freecameracontroller.hpp:57
float mYaw
Definition foray_freecameracontroller.hpp:50
#define FORAY_PROPERTY_V(member)
Getter+Setter shorthand for value types.
Definition foray_basics.hpp:81
Definition foray_scene_declares.hpp:10
Temporary type passed to components when updating the scene.
Definition foray_scenedrawing.hpp:49
Definition foray_freecameracontroller.hpp:33
bool Forward
Definition foray_freecameracontroller.hpp:34
bool YawLeft
Definition foray_freecameracontroller.hpp:43
bool Backward
Definition foray_freecameracontroller.hpp:35
bool PitchDown
Definition foray_freecameracontroller.hpp:41
bool StrafeRight
Definition foray_freecameracontroller.hpp:39
bool StrafeUp
Definition foray_freecameracontroller.hpp:36
bool StrafeLeft
Definition foray_freecameracontroller.hpp:38
bool StrafeDown
Definition foray_freecameracontroller.hpp:37
bool YawRight
Definition foray_freecameracontroller.hpp:42
bool PitchUp
Definition foray_freecameracontroller.hpp:40