#pragma once #include 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; }; }