SbViewVolume()~SbViewVolume()
Constructor and destructor.
voidgetMatrices(SbMatrix&affine,SbMatrix&proj)const
Returns two matrices corresponding to the view volume. The first is a viewing matrix, which is
guaranteed to be an affine transformation. The second is suitable for use as a projection matrix in
OpenGL.
SbMatrixgetMatrix()const
Like the method above, but returns the affine and projection parts together in one matrix (i.e.,
affine.multRight(proj) ).
SbMatrixgetCameraSpaceMatrix()const
Returns a matrix that transforms the view volume into camera space: it translates the view volume so
the viewpoint is at the origin, and rotates it so the view direction is along the negative z axis.
voidprojectPointToLine(constSbVec2f&pt,SbLine&line)constvoidprojectPointToLine(constSbVec2f&pt,SbVec3f&line0,SbVec3f&line1)const
Maps a 2D point (in 0 <= x,y <= 1) to a 3D line.
voidprojectToScreen(constSbVec3f&src,SbVec3f&dst)const
Maps the 3D point in world coordinates to a 2D point in normalized screen coordinates (0 <= x,y,z <=
1). The z-screen coordinate represents the homogenized z coordinate which goes (nonlinearly) from 0 at
the near clipping plane to 1 at the far clipping plane.
SbPlanegetPlane(floatdistFromEye)const
Returns a plane parallel to the near (or far) plane of the view volume at a given distance from the
projection point (eye).
SbVec3fgetSightPoint(floatdistFromEye)const
Returns the point along the line of sight at the given distance from the projection point (eye).
SbVec3fgetPlanePoint(floatdistFromEye,constSbVec2f&normPoint)const
Returns the projection of a given point in normalized screen coordinates (see projectToScreen()) onto
the plane parallel to the near plane that is at distFromEye units from the eye.
SbRotationgetAlignRotation(SbBoolrightAngleOnly=FALSE)const
Returns a rotation that would align a viewed object so that its positive x-axis (of its object space)
is to the right in the view and its positive y-axis is up. If rightAngleOnly is TRUE, it will come as
close as it can to this goal by using only 90 degree rotations.
floatgetWorldToScreenScale(constSbVec3f&worldCenter,floatnormRadius)const
Returns a scale factor that would scale a unit sphere centered at worldCenter so that it would appear
to have the given radius in normalized screen coordinates when projected onto the near plane.
SbVec2fprojectBox(constSbBox3f&box)const
Projects the given 3D bounding box onto the near plane and returns the size (in normalized screen
coordinates) of the rectangular region that encloses it.
SbViewVolumenarrow(floatleft,floatbottom,floatright,floattop)const
Given a view volume, narrows the view to the given sub-rectangle of the near plane. The coordinates of
the rectangle are between 0 and 1, where (0,0) is the lower-left corner of the near plane and (1,1) is
the upper-right corner.
SbViewVolumenarrow(constSbBox3f&box)const
Narrows a view volume by the given box. The box must lie inside the unit cube, and the view will be
shrunk according to the size of the box.
voidortho(floatleft,floatright,floatbottom,floattop,floatnear,floatfar)
Sets up an orthographic view volume with the given sides. The parameters are the same as for the
OpenGL glOrtho() routine.
voidperspective(floatfovy,floataspect,floatnear,floatfar)
Sets up a perspective view volume with the given field of view and aspect ratio. The parameters are
the same as for the OpenGL gluPerspective() routine, except that the field of view angle is specified
in radians.
voidrotateCamera(constSbRotation&q)
Rotate the camera view direction. Note that this accomplishes the reverse of doing an OpenGL
glRotate() command after defining a camera, which rotates the scene viewed by the camera.
voidtranslateCamera(constSbVec3f&v)
Translate the camera viewpoint. Note that this accomplishes the reverse of doing an OpenGL
glTranslate() command after defining a camera, which translates the scene viewed by the camera.
SbVec3fzVector()const
Returns the positive z axis in eye space. In this coordinate system, the z value of the near plane
should be GREATER than the z value of the far plane.
SbViewVolumezNarrow(floatnear,floatfar)const
Returns a narrowed view volume which contains as tightly as possible the given interval on the z axis
(in eye space). The returned view volume will never be larger than the current volume, however. near
and far are given in terms of zVector(): this means that near > far must hold.
voidscale(floatfactor)
Scales width and height of view volume by given factor.
voidscaleWidth(floatratio)voidscaleHeight(floatratio)
Scales view volume to be the given ratio of its current width or height, leaving the resulting view
volume centered about the same point (in the near plane) as the current one.
ProjectionTypegetProjectionType()constconstSbVec3f&getProjectionPoint()constconstSbVec3f&getProjectionDirection()const
Returns projection information.
floatgetNearDist()const
Returns distance from projection point to near plane.
floatgetWidth()constfloatgetHeight()constfloatgetDepth()const
Returns bounds of viewing frustum.