mf
Media Framework
|
View frustum of a perspective camera, without pose. More...
#include <projection_view_frustum.h>
Public Types | |
using | distance_pair = std::pair< real, real > |
using | angle_pair = std::pair< angle, angle > |
Public Types inherited from mf::view_frustum | |
enum | intersection { outside_frustum, inside_frustum, partially_inside_frustum } |
using | edge = std::pair< Eigen_vec3, Eigen_vec3 > |
using | corners_array = std::array< Eigen_vec3, 8 > |
using | edges_array = std::array< edge, 12 > |
using | planes_array = std::array< Eigen_hyperplane3, 6 > |
Public Member Functions | |
const Eigen_projective3 & | projection_transformation () const |
real | aspect_ratio () const |
bool | is_symmetric_x () const |
bool | is_symmetric_y () const |
bool | is_symmetric () const |
void | adjust_fov_x_to_aspect_ratio (real aspect_ratio) |
void | adjust_fov_y_to_aspect_ratio (real aspect_ratio) |
Public Member Functions inherited from mf::view_frustum | |
const Eigen_projective3 & | view_projection_transformation () const |
const depth_projection_parameters & | depth_parameters () const |
Eigen_hyperplane3 | near_plane () const |
Eigen_hyperplane3 | far_plane () const |
Eigen_hyperplane3 | left_plane () const |
Eigen_hyperplane3 | right_plane () const |
Eigen_hyperplane3 | bottom_plane () const |
Eigen_hyperplane3 | top_plane () const |
planes_array | planes () const |
corners_array | corners () const |
edges_array | edges () const |
bool | contains (const Eigen_vec3 &, bool consider_z_planes=true) const |
intersection | contains (const bounding_box &) const |
view_frustum | transform (const Eigen_affine3 &) const |
Static Public Member Functions | |
static projection_view_frustum | symmetric_perspective (real near_width, real near_height, const depth_projection_parameters &) |
Create with symmetric perspective, given width and height of near clipping plane. More... | |
static projection_view_frustum | symmetric_perspective_fov (angle near_width, angle near_height, const depth_projection_parameters &) |
Create with symmetric perspective, given horizontal and vertical field of view angles. More... | |
static projection_view_frustum | symmetric_perspective_fov_x (angle near_width, real aspect_ratio, const depth_projection_parameters &) |
Create with symmetric perspective, given horizontal field of view and image aspect ratio. More... | |
static projection_view_frustum | symmetric_perspective_fov_y (angle near_height, real aspect_ratio, const depth_projection_parameters &) |
Create with symmetric perspective, given vertical field of view and image aspect ratio. More... | |
static projection_view_frustum | asymmetric_perspective (distance_pair near_x, distance_pair near_y, const depth_projection_parameters &) |
Create with asymmetric perspective, given horizontal and vertical ranges of near clipping plane. More... | |
static projection_view_frustum | asymmetric_perspective_fov (angle_pair near_x, angle_pair near_y, const depth_projection_parameters &) |
Create with asymmetric perspective, given horizontal and vertical limit angles of field of view. More... | |
Static Public Member Functions inherited from mf::view_frustum | |
static intersection | contains (const planes_array &, const bounding_box &) |
Additional Inherited Members | |
Protected Member Functions inherited from mf::view_frustum | |
view_frustum (const Eigen_mat4 &mat, const depth_projection_parameters &dparam) | |
view_frustum ()=delete | |
Eigen_mat4 & | matrix_ () |
const Eigen_mat4 & | matrix_ () const |
View frustum of a perspective camera, without pose.
Frustum apex is at origin, axis-aligned, and pointing in -Z or +Z direction depending on depth projection parameter. Can be creates for perspective projection.
using mf::projection_view_frustum::angle_pair = std::pair<angle, angle> |
using mf::projection_view_frustum::distance_pair = std::pair<real, real> |
void mf::projection_view_frustum::adjust_fov_x_to_aspect_ratio | ( | real | aspect_ratio | ) |
void mf::projection_view_frustum::adjust_fov_y_to_aspect_ratio | ( | real | aspect_ratio | ) |
real mf::projection_view_frustum::aspect_ratio | ( | ) | const |
|
static |
Create with asymmetric perspective, given horizontal and vertical ranges of near clipping plane.
|
static |
Create with asymmetric perspective, given horizontal and vertical limit angles of field of view.
bool mf::projection_view_frustum::is_symmetric | ( | ) | const |
bool mf::projection_view_frustum::is_symmetric_x | ( | ) | const |
bool mf::projection_view_frustum::is_symmetric_y | ( | ) | const |
|
inline |
|
static |
Create with symmetric perspective, given width and height of near clipping plane.
|
static |
Create with symmetric perspective, given horizontal and vertical field of view angles.
|
static |
Create with symmetric perspective, given horizontal field of view and image aspect ratio.
|
static |
Create with symmetric perspective, given vertical field of view and image aspect ratio.