Open Inventor Reference
|
Base class for representing projectors. More...
#include <Inventor/projectors/SbProjector.h>
Public Member Functions | |
virtual SbVec3f | project (const SbVec2f &point)=0 |
Apply the projector using the given point, returning the point in three dimensions that it projects to. | |
virtual void | setViewVolume (const SbViewVolume &vol) |
Set the view volume to use for the projection. | |
const SbViewVolume & | getViewVolume () const |
Get the view volume to use for the projection. | |
virtual void | setWorkingSpace (const SbMatrix &space) |
Set the transform space to work in. | |
const SbMatrix & | getWorkingSpace () const |
Get the transform space to work in. | |
virtual SbProjector * | copy () const =0 |
Creates and returns an exact copy of the projector. | |
Protected Member Functions | |
SbProjector () | |
Default constructor. | |
~SbProjector () | |
SbLine | getWorkingLine (const SbVec2f &point) const |
Given this mouse point, return the line it projects to in working space. | |
Protected Attributes | |
SbViewVolume | viewVol |
SbMatrix | worldToWorking |
SbMatrix | workingToWorld |
SbProjector is the base class for all projector classes. Projector classes are used to convert from window space (usually based on the mouse location) into a 3D point. This is done by projecting the window coordinate as a 3D vector onto a geometric function in 3-space, and computing the intersection point. Most projectors actually compute incremental changes and produce incremental rotations and translation as needed. Projectors are used to write 3D interactive manipulators and viewers.
Definition at line 86 of file SbProjector.h.
SbProjector::SbProjector | ( | ) | [protected] |
The default view volume is undefined. The default working space is identity (world space).
SbProjector::~SbProjector | ( | ) | [inline, protected] |
Definition at line 122 of file SbProjector.h.
virtual SbProjector* SbProjector::copy | ( | ) | const [pure virtual] |
const SbViewVolume& SbProjector::getViewVolume | ( | ) | const [inline] |
Definition at line 102 of file SbProjector.h.
const SbMatrix& SbProjector::getWorkingSpace | ( | ) | const [inline] |
Definition at line 111 of file SbProjector.h.
The point should be normalized (lie in the range [0.0,1.0]), with (0,0) at the lower-left.
Implemented in SbCylinderPlaneProjector, SbCylinderProjector, SbCylinderSectionProjector, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector, SbSpherePlaneProjector, SbSphereProjector, SbSphereSectionProjector, and SbSphereSheetProjector.
Referenced by SbPlaneProjector::setStartPosition(), and SbLineProjector::setStartPosition().
virtual void SbProjector::setViewVolume | ( | const SbViewVolume & | vol | ) | [virtual] |
This is typically supplied from SoCamera::getViewVolume().
virtual void SbProjector::setWorkingSpace | ( | const SbMatrix & | space | ) | [virtual] |
This matrix should transform working space coordinates into world space. The default matrix is identity, meaning that the default working space is world space.
Reimplemented in SbCylinderProjector, and SbSphereProjector.
SbViewVolume SbProjector::viewVol [protected] |
Definition at line 128 of file SbProjector.h.
SbMatrix SbProjector::workingToWorld [protected] |
Definition at line 130 of file SbProjector.h.
SbMatrix SbProjector::worldToWorking [protected] |
Definition at line 129 of file SbProjector.h.