class Camera {
public:
Camera();
- Camera(float phi, float theta, float distance, float fov);
virtual ~Camera();
virtual Mat4 get_view_matrix() const = 0;
- virtual void use() const;
};
class OrbitCamera : public Camera {
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 f, float n, float aspect, float fov);
+Mat4 calc_projection_matrix(float fov_deg, float aspect, float n, float f);
-#endif // CAMERA_H_
\ No newline at end of file
+#endif // CAMERA_H_