+++ /dev/null
-#include <math.h>
-
-#include <gmath/gmath.h>
-
-#include "camera.h"
-
-Camera::Camera() {}
-Camera::~Camera() {}
-
-OrbitCamera::OrbitCamera()
-{
- phi = theta = distance = 0;
-}
-
-OrbitCamera::~OrbitCamera() {}
-
-void OrbitCamera::set_orbit_params(float theta, float phi, float distance)
-{
- this->phi = phi;
- this->theta = theta;
- this->distance = distance;
-}
-
-Mat4 OrbitCamera::get_view_matrix() const
-{
- Mat4 view_matrix;
- view_matrix.translation(-position);
- view_matrix.rotate_y(theta * (float)M_PI / 180);
- view_matrix.rotate_x(phi * (float)M_PI / 180);
- view_matrix.translate(Vec3(0, 0, -distance));
-
- return view_matrix;
-}
-
-Mat4 calc_projection_matrix(float fov_deg, float aspect, float n, float f)
-{
- float fov = fov_deg / 180 * M_PI;
-
- float tmp;
- tmp = 1 / tan(fov / 2.0);
-
- /* near - far clipping planes */
- float range = n - f;
-
- Mat4 pmat = Mat4(
- tmp/aspect, 0, 0, 0,
- 0, tmp, 0, 0,
- 0, 0, (f + n) / range, -1,
- 0, 0, 2 * n * f / range, 0
- );
-
- return pmat;
-}
-
-void OrbitCamera::set_position(float x, float y, float z)
-{
- position.x = x;
- position.y = y;
- position.z = z;
-}