mf
Media Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | List of all members
mf::projection_view_frustum Class Reference

View frustum of a perspective camera, without pose. More...

#include <projection_view_frustum.h>

Inheritance diagram for mf::projection_view_frustum:
mf::view_frustum

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_projective3projection_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_projective3view_projection_transformation () const
 
const depth_projection_parametersdepth_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_mat4matrix_ ()
 
const Eigen_mat4matrix_ () const
 

Detailed Description

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.

Member Typedef Documentation

Member Function Documentation

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
projection_view_frustum mf::projection_view_frustum::asymmetric_perspective ( distance_pair  near_x,
distance_pair  near_y,
const depth_projection_parameters dparam 
)
static

Create with asymmetric perspective, given horizontal and vertical ranges of near clipping plane.

projection_view_frustum mf::projection_view_frustum::asymmetric_perspective_fov ( angle_pair  near_x,
angle_pair  near_y,
const depth_projection_parameters dparam 
)
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
const Eigen_projective3& mf::projection_view_frustum::projection_transformation ( ) const
inline
projection_view_frustum mf::projection_view_frustum::symmetric_perspective ( real  near_width,
real  near_height,
const depth_projection_parameters dparam 
)
static

Create with symmetric perspective, given width and height of near clipping plane.

projection_view_frustum mf::projection_view_frustum::symmetric_perspective_fov ( angle  near_width,
angle  near_height,
const depth_projection_parameters dparam 
)
static

Create with symmetric perspective, given horizontal and vertical field of view angles.

projection_view_frustum mf::projection_view_frustum::symmetric_perspective_fov_x ( angle  near_width,
real  aspect_ratio,
const depth_projection_parameters dparam 
)
static

Create with symmetric perspective, given horizontal field of view and image aspect ratio.

projection_view_frustum mf::projection_view_frustum::symmetric_perspective_fov_y ( angle  near_height,
real  aspect_ratio,
const depth_projection_parameters dparam 
)
static

Create with symmetric perspective, given vertical field of view and image aspect ratio.


The documentation for this class was generated from the following files: