aboutsummaryrefslogtreecommitdiff
path: root/include/ThirdPersonCamera.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/ThirdPersonCamera.hpp')
-rw-r--r--include/ThirdPersonCamera.hpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/ThirdPersonCamera.hpp b/include/ThirdPersonCamera.hpp
new file mode 100644
index 0000000..00a22a4
--- /dev/null
+++ b/include/ThirdPersonCamera.hpp
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <glm/glm.hpp>
+
+namespace amalgine {
+ class ThirdPersonCamera {
+ public:
+ ThirdPersonCamera();
+
+ void zoom(float distance);
+ void rotate_horizontal(float radians);
+ void rotate_vertical(float radians);
+ void set_target_position(const glm::vec3 &target_pos);
+ glm::mat4 get_matrix() const;
+ glm::vec3 get_forward_vector() const;
+ glm::vec3 get_right_vector() const;
+ private:
+ glm::vec3 target_pos;
+ float camera_distance;
+ float angle_horizontal;
+ float angle_vertical;
+ };
+} \ No newline at end of file