class Camera {
public:
Camera();
- Camera(float phi, float theta, float distance, float fov);
virtual ~Camera();
virtual Mat4 get_view_matrix() const = 0;
float phi;
float distance;
+ Vec3 position;
+
public:
OrbitCamera();
- OrbitCamera(float theta, float phi, float distance);
virtual ~OrbitCamera();
virtual Mat4 get_view_matrix() const override;
- void set_orbit_params(float phi, float theta, float distance);
+ void set_orbit_params(float theta, float phi, float distance);
+ void set_position(float x, float y, float z);
};
Mat4 calc_projection_matrix(float fov_deg, float aspect, float n, float f);