18 #ifndef ZENI_CAMERA_HXX
19 #define ZENI_CAMERA_HXX
78 float(viewport.second.x - viewport.first.x) / (viewport.second.y - viewport.first.y),
float get_tunneled_fov_rad() const
Get the field of view (in the y-axis) in radians, shifted by tunnel vision.
Vector3f get_forward() const
Get the vector indicating the direction in which the camera is pointing.
float get_fov_deg() const
Get the field of view (in the y-axis) in degrees.
Point3f get_tunneled_position() const
Get the position shifted by tunnel vision.
Matrix4f get_projection_matrix(const std::pair< Point2i, Point2i > &viewport) const
Equivalent to gluPerspective + tunnel_vision_factor.
A 3D Point represented with floats.
A Featureful 3-Space Vector Class.
const float pi
pi == 3.1415926...
static Matrix4f View(const Point3f &position, const Vector3f &forward, const Vector3f &up)
Similar to gluLookAt.
float get_tunneled_near_clip() const
Get the near clip shifted by tunnel vision.
float get_tunneled_fov_deg() const
Get the field of view (in the y-axis) in degrees, shifted by tunnel vision.
float get_tunneled_far_clip() const
Get the far clip shifted by tunnel vision.
float tunnel_vision_factor
void set_fov_deg(const float °rees)
Set the field of view (in the y-axis) in degrees.
Vector3f get_left() const
Get the vector indicating what is "left" from the perspective of the camera.
A Featureful 4-Space Matrix Class.
static Matrix4f Perspective(const float &fov_rad_y, const float &aspect, const float &near, const float &far)
Similar to gluPerspective.
Matrix4f get_view_matrix() const
Equivalent to gluLookAt + tunnel_vision_factor.
Vector3f get_up() const
Get the vector indicating what is "up" from the perspective of the camera.
#define ZENI_DEFAULT_LEFT_VECTOR
#define ZENI_DEFAULT_UP_VECTOR
#define ZENI_DEFAULT_FORWARD_VECTOR