Vivid
Loading...
Searching...
No Matches
MovableCamera.h
1#pragma once
2
3#pragma once
4
5#include "editor/camera/Camera.h"
6#include "common/maths/Vec.h"
7
14class MovableCamera : public Camera
15{
16protected:
17 Vivid::Maths::Vec3 m_Position;
18 glm::mat4 m_ProjectionMatrix;
19 glm::mat4 m_ViewMatrix;
20
21public:
22 glm::vec3 GetPosition() { return m_Position.ToGLM(); }
23 glm::mat4 GetViewMatrix() { return m_ViewMatrix; };
24 glm::mat4 GetProjectionMatrix() { return m_ProjectionMatrix; };
25
26 void SetPosition(const Vivid::Maths::Vec3& position) { m_Position = position; };
27 void SetPerspective(const glm::mat4& perspective) { m_ProjectionMatrix = perspective; };
28 void SetViewMatrix(const glm::mat4& view) { m_ViewMatrix = view; };
29
30 virtual void SetViewportSize(int width, int height) = 0;
31
32 virtual void MoveForward() = 0;
33 virtual void MoveBackward() = 0;
34 virtual void MoveLeft() = 0;
35 virtual void MoveRight() = 0;
36 virtual void ProcessMouseScroll(float scrollOffset) = 0;
37 virtual void ProcessMouseMovement(float xOffset, float yOffset, bool constrainPitch = true) = 0;
38};
A class that represents the camera.
Definition: Camera.h:25
A class for the MovableCamera's.
Definition: MovableCamera.h:15
Contains a 3D vector.
Definition: Vec.h:51