Nebula
Loading...
Searching...
No Matches
freecamerautil.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
11#include "math/mat4.h"
12#include "math/vec2.h"
13#include "math/polar.h"
14
15//------------------------------------------------------------------------------
16namespace RenderUtil
17{
19{
20public:
23
27 void Reset();
29 void Update();
31 const Math::mat4& GetTransform() const;
32
34 void SetRotateButton(bool state);
36 void SetAccelerateButton(bool state);
38 void SetMouseMovement(Math::vec2 movement);
40 void SetRotationSpeed(float speed);
42 void SetMovementSpeed(float speed);
43
45 void SetForwardsKey(bool state);
47 void SetBackwardsKey(bool state);
49 void SetLeftStrafeKey(bool state);
51 void SetRightStrafeKey(bool state);
53 void SetUpKey(bool state);
55 void SetDownKey(bool state);
56
57private:
61
65
67 float moveSpeed;
68
71
76 bool upKey;
77 bool downKey;
78};
79
80
81//------------------------------------------------------------------------------
84inline const Math::mat4&
86{
87 return this->cameraTransform;
88}
89
90//------------------------------------------------------------------------------
93inline void
98
99//------------------------------------------------------------------------------
102inline void
107
108//------------------------------------------------------------------------------
111inline void
113{
114 this->mouseMovement = movement;
115}
116
117//------------------------------------------------------------------------------
120inline void
122{
123 this->rotationSpeed = speed;
124}
125
126//------------------------------------------------------------------------------
129inline void
131{
132 this->moveSpeed = speed;
133}
134
135//------------------------------------------------------------------------------
138inline void
143
144//------------------------------------------------------------------------------
147inline void
152
153//------------------------------------------------------------------------------
156inline void
161
162//------------------------------------------------------------------------------
165inline void
170
171//------------------------------------------------------------------------------
174inline void
176{
177 this->upKey = state;
178}
179
180//------------------------------------------------------------------------------
183inline void
185{
186 this->downKey = state;
187}
188
189} // namespace RenderUtil
190//------------------------------------------------------------------------------
A polar coordinate inline class, consisting of 2 angles theta (latitude) and rho (longitude).
Definition polar.h:28
Implements a free camera.
Definition freecamerautil.h:19
bool upKey
Definition freecamerautil.h:76
bool forwardsKey
Definition freecamerautil.h:72
void SetUpKey(bool state)
sets the up movement key
Definition freecamerautil.h:175
bool downKey
Definition freecamerautil.h:77
void SetRightStrafeKey(bool state)
sets the right strafe key
Definition freecamerautil.h:166
Math::polar viewAngles
Definition freecamerautil.h:62
FreeCameraUtil()
constructor
Definition freecamerautil.cc:15
void SetForwardsKey(bool state)
sets the forward movement key
Definition freecamerautil.h:139
float moveSpeed
Definition freecamerautil.h:67
void SetRotationSpeed(float speed)
sets the rotation speed
Definition freecamerautil.h:121
bool rotateButton
Definition freecamerautil.h:69
void SetRotateButton(bool state)
sets the state of the rotate button
Definition freecamerautil.h:94
Math::mat4 cameraTransform
Definition freecamerautil.h:64
Math::point position
Definition freecamerautil.h:63
bool accelerateButton
Definition freecamerautil.h:70
bool rightStrafeKey
Definition freecamerautil.h:75
void SetDownKey(bool state)
sets the down movement key
Definition freecamerautil.h:184
bool backwardsKey
Definition freecamerautil.h:73
Math::point defaultEyePos
Definition freecamerautil.h:58
void Setup(const Math::point &defaultEyePos, const Math::vector &defaultEyeVec)
sets up free camera
Definition freecamerautil.cc:38
float rotationSpeed
Definition freecamerautil.h:66
void SetAccelerateButton(bool state)
sets the state of the accelerate button
Definition freecamerautil.h:103
void SetLeftStrafeKey(bool state)
sets the left strafe key
Definition freecamerautil.h:157
Math::vec2 mouseMovement
Definition freecamerautil.h:60
Math::vector defaultEyeVec
Definition freecamerautil.h:59
void SetMouseMovement(Math::vec2 movement)
sets the mouse movement
Definition freecamerautil.h:112
bool leftStrafeKey
Definition freecamerautil.h:74
void SetMovementSpeed(float speed)
sets the movement speed
Definition freecamerautil.h:130
void Reset()
resets free camera to default values
Definition freecamerautil.cc:51
void Update()
updates camera matrix
Definition freecamerautil.cc:62
const Math::mat4 & GetTransform() const
gets camera transform
Definition freecamerautil.h:85
void SetBackwardsKey(bool state)
sets the backward movement key
Definition freecamerautil.h:148
Helpers to create geometry.
Definition drawfullscreenquad.cc:10
Vulkan::GraphicsDeviceState state
A 4x4 single point precision float matrix.
Definition mat4.h:47
Represents a 3D point in space.
Definition point.h:22
A 2-component float vector class.
Definition vec2.h:21
A vector is a 3D direction in space.
Definition vector.h:22