openvrml::frustum Class Reference

A view frustum. More...

#include <openvrml/frustum.h>

Public Member Functions

 frustum ()
 Construct a default frustum.
 frustum (float fovy, float aspect, double z_near, double z_far)
 Construct and initialize a frustum.

Public Attributes

float fovy
 Vertical field of view.
float fovx
 Horizontal field of view.
double z_near
 Distance to the near clipping plane.
double z_far
 Distance to the far clipping plane.
float left_plane [4]
 Left (looking down -z) side clip plane.
float right_plane [4]
 Right clipping plane.
float top_plane [4]
 Top clipping plane.
float bot_plane [4]
 Bottom clipping plane.

Detailed Description

A view frustum.

A frustum is more or less a truncated pyramid. This class represents frustums with their wide end facing down the -z axis, and their (theoretical) tip at the origin. A frustum is a convenient representation of the volume of virtual space visible through the on-screen window when using a perspective projection.

See Also
openvrml::appearance_node::render_appearance
openvrml::child_node::render_child
openvrml::geometry_node::render_geometry
openvrml::viewer

Constructor & Destructor Documentation

openvrml::frustum::frustum ( )

Construct a default frustum.

fovy, fovx, near and far all get set to -1.

openvrml::frustum::frustum ( float  fovy,
float  aspect,
double  z_near,
double  z_far 
)

Construct and initialize a frustum.

The field of view should be less than 180 degrees. Extreme aspect ratios are unlikely to work well. The near and far plane distances are always positive (think distance, not position). anear must be less than afar. This is supposed to look like gluPerspective.

Parameters
[in]fovyvertical field of view in degrees.
[in]aspectratio of view width to height (not the ratio of the horizontal to vertial field-of-views).
[in]z_neardistance to near clip plane.
[in]z_fardistance to far clip plane.

Member Data Documentation

openvrml::frustum::fovy

Vertical field of view.

openvrml::frustum::fovx

Horizontal field of view.

openvrml::frustum::z_near

Distance to the near clipping plane.

openvrml::frustum::z_far

Distance to the far clipping plane.

openvrml::frustum::left_plane

Left (looking down -z) side clip plane.

Format is (a,b,c,d) where (a,b,c) is the plane normal and d is the plane offset. For the momement the eyepoint is always the origin, so d is going to be 0.

openvrml::frustum::right_plane

Right clipping plane.

openvrml::frustum::top_plane

Top clipping plane.

openvrml::frustum::bot_plane

Bottom clipping plane.