GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SBVIEWVOLUME (3)

NAME

SbViewVolume — 3D viewing volume class

CONTENTS

Inherits From
Synopsis
Description
Methods
File Format/defaults
See Also

INHERITS FROM

SbViewVolume

SYNOPSIS

#include <Inventor/SbLinear.h>

enum ProjectionType {     SbViewVolume::ORTHOGRAPHIC    
                             SbViewVolume::ORTHOGRAPHIC   Orthographic projection    
SbViewVolume::PERSPECTIVE    
                             SbViewVolume::PERSPECTIVE    Perspective projection
}

Methods from class SbViewVolume:

       
                    
                     SbViewVolume()    
   
                    
                     ~SbViewVolume()    
void    
                    
void                 getMatrices(SbMatrix &affine, SbMatrix &proj) const    
SbMatrix    
                    
SbMatrix             getMatrix() const    
SbMatrix    
                    
SbMatrix             getCameraSpaceMatrix() const    
void    
                    
void                 projectPointToLine(const SbVec2f &pt, SbLine &line) const    
void    
                    
void                 projectPointToLine(const SbVec2f &pt, SbVec3f &line0, SbVec3f &line1) const    
void    
                    
void                 projectToScreen(const SbVec3f &src, SbVec3f &dst) const    
SbPlane    
                    
SbPlane              getPlane(float distFromEye) const    
SbVec3f    
                    
SbVec3f              getSightPoint(float distFromEye) const    
SbVec3f    
                    
SbVec3f              getPlanePoint(float distFromEye, const SbVec2f &normPoint) const    
SbRotation    
                    
SbRotation           getAlignRotation(SbBool rightAngleOnly = FALSE) const    
float    
                    
float                getWorldToScreenScale(const SbVec3f &worldCenter, float normRadius) const    
SbVec2f    
                    
SbVec2f              projectBox(const SbBox3f &box) const    
SbViewVolume    
                    
SbViewVolume         narrow(float left, float bottom, float right, float top) const    
SbViewVolume    
                    
SbViewVolume         narrow(const SbBox3f &box) const    
void    
                    
void                 ortho(float left, float right, float bottom, float top, float near, float far)    
void    
                    
void                 perspective(float fovy, float aspect, float near, float far)    
void    
                    
void                 rotateCamera(const SbRotation &q)    
void    
                    
void                 translateCamera(const SbVec3f &v)    
SbVec3f    
                    
SbVec3f              zVector() const    
SbViewVolume    
                    
SbViewVolume         zNarrow(float near, float far) const    
void    
                    
void                 scale(float factor)    
void    
                    
void                 scaleWidth(float ratio)    
void    
                    
void                 scaleHeight(float ratio)    
ProjectionType    
                    
ProjectionType       getProjectionType() const    
const SbVec3f &    
                    
const SbVec3f &      getProjectionPoint() const    
const SbVec3f &    
                    
const SbVec3f &      getProjectionDirection() const    
float    
                    
float                getNearDist() const    
float    
                    
float                getWidth() const    
float    
                    
float                getHeight() const    
float    
                    
float                getDepth() const

DESCRIPTION

Class used to represent a 3D viewing volume. This class is used to represent viewing frusta and picking volumes. For perspective projection, the view volume is a frustum. For orthographic (parallel) projection, the view volume is a rectangular prism.

METHODS

       
                    
                     SbViewVolume()    
   
                    
                     ~SbViewVolume()
Constructor and destructor.

    void    
                    
void                 getMatrices(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.

    SbMatrix    
                    
SbMatrix             getMatrix() const
Like the method above, but returns the affine and projection parts together in one matrix (i.e., affine.multRight( proj ) ).

    SbMatrix    
                    
SbMatrix             getCameraSpaceMatrix() 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.

    void    
                    
void                 projectPointToLine(const SbVec2f &pt, SbLine &line) const    
void    
                    
void                 projectPointToLine(const SbVec2f &pt, SbVec3f &line0, SbVec3f &line1) const
Maps a 2D point (in 0 <= x,y <= 1) to a 3D line.

    void    
                    
void                 projectToScreen(const SbVec3f &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.

    SbPlane    
                    
SbPlane              getPlane(float distFromEye) const
Returns a plane parallel to the near (or far) plane of the view volume at a given distance from the projection point (eye).

    SbVec3f    
                    
SbVec3f              getSightPoint(float distFromEye) const
Returns the point along the line of sight at the given distance from the projection point (eye).

    SbVec3f    
                    
SbVec3f              getPlanePoint(float distFromEye, const SbVec2f &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.

    SbRotation    
                    
SbRotation           getAlignRotation(SbBool rightAngleOnly = 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.

    float    
                    
float                getWorldToScreenScale(const SbVec3f &worldCenter, float normRadius) 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.

    SbVec2f    
                    
SbVec2f              projectBox(const SbBox3f &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.

    SbViewVolume    
                    
SbViewVolume         narrow(float left, float bottom, float right, float top) 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.

    SbViewVolume    
                    
SbViewVolume         narrow(const SbBox3f &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.

    void    
                    
void                 ortho(float left, float right, float bottom, float top, float near, float far)
Sets up an orthographic view volume with the given sides. The parameters are the same as for the OpenGL glOrtho() routine.

    void    
                    
void                 perspective(float fovy, float aspect, float near, float far)
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.

    void    
                    
void                 rotateCamera(const SbRotation &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.

    void    
                    
void                 translateCamera(const SbVec3f &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.

    SbVec3f    
                    
SbVec3f              zVector() 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.

    SbViewVolume    
                    
SbViewVolume         zNarrow(float near, float far) 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.

    void    
                    
void                 scale(float factor)
Scales width and height of view volume by given factor.

    void    
                    
void                 scaleWidth(float ratio)    
void    
                    
void                 scaleHeight(float ratio)
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.

    ProjectionType    
                    
ProjectionType       getProjectionType() const    
const SbVec3f &    
                    
const SbVec3f &      getProjectionPoint() const    
const SbVec3f &    
                    
const SbVec3f &      getProjectionDirection() const
Returns projection information.

    float    
                    
float                getNearDist() const
Returns distance from projection point to near plane.

    float    
                    
float                getWidth() const    
float    
                    
float                getHeight() const    
float    
                    
float                getDepth() const
Returns bounds of viewing frustum.

FILE FORMAT/DEFAULTS

SEE ALSO

SbVec3f, SbVec2f, SbBox3f, SbMatrix, SbRotation

Search for    or go to Top of page |  Section 3 |  Main Index


SBVIEWVOLUME(3IV) (-->)

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.