#ifndef CAMERA_HPP_ #define CAMERA_HPP_ #include "config.hpp" #include #include class orbit_camera { public: Vector3 position = Vector3Zero(); Vector3 target = Vector3Zero(); float distance = CAMERA_DISTANCE; float fov = CAMERA_FOV; CameraProjection projection = CAMERA_PERSPECTIVE; float angle_x = 0.0; float angle_y = 0.0; Camera camera = Camera{Vector3(0, 0, -distance), target, Vector3(0, 1.0, 0), fov, projection}; public: auto rotate(Vector2 last_mouse, Vector2 mouse) -> void; auto pan(Vector2 last_mouse, Vector2 mouse) -> void; auto update(const Vector3& current_target, const Vector3& mass_center, bool lock, bool mass_center_lock) -> void; }; #endif