Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
FirstPersonCamera.h
Go to the documentation of this file.
1 #pragma once
2 #include "Camera.h"
3 
4 namespace Fling
5 {
9  class FirstPersonCamera : public Camera
10  {
11  public:
12  FirstPersonCamera(float aspectRatio, float t_MoveSpeed = 10.0f, float t_RotSpeed = 40.f);
13 
15  glm::vec3 position,
16  glm::vec3 rotation,
17  float speed,
18  float aspectRatio);
19 
21  glm::vec3 front, glm::vec3 up,
22  glm::vec3 position, glm::vec3 rotation,
23  float speed,
24  float nearPlane, float farPlane,
25  float fov, float aspectRatio);
26 
27  void Update(float dt) override;
28 
29  float GetRotationSpeed() const { return m_RotationSpeed; }
30  void SetRotationSpeed(float t_NewSpeed) { m_RotationSpeed = t_NewSpeed; }
31 
32  bool IsRotating() const { return m_IsRotating; }
33 
34  private:
35  glm::vec3 m_front;
36  glm::vec3 m_up;
37  glm::vec3 m_right;
38  glm::vec3 m_worldUp;
39 
40  float m_RotationSpeed = 20.0f;
41  bool m_IsRotating = false;
42 
44 
45  void UpdateViewMatrix();
47  void UpdateCameraVectors();
48  };
49 }
represents the current mouse position in screen space
Definition: Input.h:11
float GetRotationSpeed() const
Definition: FirstPersonCamera.h:29
void Update(float dt) override
Definition: FirstPersonCamera.cpp:60
void SetRotationSpeed(float t_NewSpeed)
Definition: FirstPersonCamera.h:30
void UpdateViewMatrix()
Definition: FirstPersonCamera.cpp:136
Base class for camera, meant to be overridden.
Definition: Camera.h:10
A simple first person camera.
Definition: FirstPersonCamera.h:9
bool IsRotating() const
Definition: FirstPersonCamera.h:32
MousePos m_PrevMousePos
Definition: FirstPersonCamera.h:43
glm::vec3 m_right
Definition: FirstPersonCamera.h:37
glm::vec3 m_worldUp
Definition: FirstPersonCamera.h:38
void UpdateCameraVectors()
Definition: FirstPersonCamera.cpp:146
void UpdateProjectionMatrix()
Definition: FirstPersonCamera.cpp:141
bool m_IsRotating
Definition: FirstPersonCamera.h:41
FirstPersonCamera(float aspectRatio, float t_MoveSpeed=10.0f, float t_RotSpeed=40.f)
Definition: FirstPersonCamera.cpp:8
glm::vec3 m_front
Definition: FirstPersonCamera.h:35
glm::vec3 m_up
Definition: FirstPersonCamera.h:36
float m_RotationSpeed
Definition: FirstPersonCamera.h:40
Definition: Engine.h:13