Vivid
Loading...
Searching...
No Matches
OrthoCamera.h
1#pragma once
2
3#include "editor/camera/movable/MovableCamera.h"
4#include "common/maths/Vec.h"
5
12{
13private:
14 float m_Rotation = 0.0f;
15 // glm::mat4 m_ProjectionMatrix;
16 // glm::mat4 m_ViewMatrix;
17
18 float m_Left, m_Right, m_Bottom, m_Top;
19 float m_Near, m_Far;
20
21 float m_ZoomLevel = 1.0f;
22
23 void updateProjectionMatrix();
24 void updateViewMatrix();
25
26 float m_Speed = 0.5f;
27 float m_ScrollSpeed = 1;
28
29public:
30 OrthoCamera(Vivid::Maths::Vec3 position, float rotation, float zoomLevel, float near = -1.0f, float far = 1.0f);
31
32 ~OrthoCamera() = default;
33
34 void SetRotation(float rotation);
35
36 float GetRotation() const { return m_Rotation; }
37
38 void SetPerspective(float left, float right, float bottom, float top);
39
40 // glm::mat4 GetViewMatrix() override { return m_ProjectionMatrix; };
41 // glm::mat4 GetProjectionMatrix() override { return m_ViewMatrix; };
42 Vivid::Maths::Vec4 GetBounds() { return Vivid::Maths::Vec4(m_Left, m_Right, m_Bottom, m_Top); };
43
44 void SetViewportSize(int width, int height) override;
45
46 void MoveForward() override;
47 void MoveBackward() override;
48 void MoveLeft() override;
49 void MoveRight() override;
50 void ProcessMouseScroll(float scrollOffset) override;
51 void ProcessMouseMovement(float xOffset, float yOffset, bool constrainPitch) override;
52
53 Vivid::Maths::Vec2 ScreenToWorldCoords(float x, float y);
54};
A class for the MovableCamera's.
Definition: MovableCamera.h:15
A class for the OrthoCamera's.
Definition: OrthoCamera.h:12
Contains a 2D vector.
Definition: Vec.h:108
Contains a 3D vector.
Definition: Vec.h:51
Contains a 4D vector.
Definition: Vec.h:21