sfw/sfw/application/camera.h

53 lines
776 B
C++

#ifndef CAMERA_H
#define CAMERA_H
#include "3rd_glad.h"
#include "projection.h"
#include "transform.h"
#include "vector3.h"
class Camera {
public:
virtual void bind();
void make_current();
Camera();
virtual ~Camera();
float size;
float screen_aspect_ratio; //p_viewport_size.width / (float)p_viewport_size.height,
float znear;
float zfar;
bool vaspect;
static Camera *current_camera;
Transform camera_transform;
Transform model_view_matrix;
Projection projection_matrix;
};
class OrthographicCamera : public Camera {
public:
void bind();
OrthographicCamera();
~OrthographicCamera();
};
class PerspectiveCamera : public Camera {
public:
float fov;
void bind();
PerspectiveCamera();
~PerspectiveCamera();
};
//frustum
#endif // CAMERA_H