Open Inventor Reference
|
Sphere-sheet projector. More...
#include <Inventor/projectors/SbSphereSheetProjector.h>
Public Member Functions | |
SbSphereSheetProjector (bool orientToEye=TRUE) | |
SbSphereSheetProjector (const SbSphere &sph, bool orientToEye=TRUE) | |
Constructors. | |
~SbSphereSheetProjector () | |
Destructor. | |
virtual SbProjector * | copy () const |
Returns an instance that is a copy of this instance. | |
virtual SbVec3f | project (const SbVec2f &point) |
Apply the projector using the given point, returning the point in three dimensions that it projects to. | |
virtual SbRotation | getRotation (const SbVec3f &point1, const SbVec3f &point2) |
Computes a rotation based on two points on this projector. | |
Public Member Functions inherited from SbSphereProjector | |
virtual SbVec3f | project (const SbVec2f &point)=0 |
Apply the projector using the given point, returning the point in three dimensions that it projects to. | |
SbVec3f | projectAndGetRotation (const SbVec2f &point, SbRotation &rot) |
Apply the projector using the given point, returning the point in three dimensions that it projects to. | |
virtual SbRotation | getRotation (const SbVec3f &point1, const SbVec3f &point2)=0 |
Get a rotation given two points on this sphere projector. | |
void | setSphere (const SbSphere &sph) |
Set and get the sphere on which to project points. | |
const SbSphere & | getSphere () const |
Set and get the sphere on which to project points. | |
void | setOrientToEye (bool orientToEye) |
Set and get whether the projector should always be oriented towards the eye. | |
bool | isOrientToEye () const |
Set and get whether the projector should always be oriented towards the eye. | |
void | setFront (bool inFront) |
Set whether the projector should intersect the half of the sphere that faces the eye. | |
bool | isFront () const |
Get whether the projector should intersect the half of the sphere that faces the eye. | |
bool | isPointInFront (const SbVec3f &point) const |
Get whether the projector should intersect the half of the sphere that faces the eye. | |
virtual void | setWorkingSpace (const SbMatrix &space) |
Set the transform space to work in. | |
~SbSphereProjector () | |
Destructor. | |
Public Member Functions inherited from SbProjector | |
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 | |
void | setupPlane () |
Sets up the plane use to project on to. | |
Protected Member Functions inherited from SbSphereProjector | |
SbSphereProjector (bool orientToEye) | |
Constructors The default sphere to use has a radius of 1.0 and is centered at (0,0,0). | |
SbSphereProjector (const SbSphere &s, bool orientToEye) | |
Protected Member Functions inherited from SbProjector | |
SbProjector () | |
Default constructor. | |
virtual | ~SbProjector () |
SbLine | getWorkingLine (const SbVec2f &point) const |
Given this mouse point, return the line it projects to in working space. | |
Protected Attributes | |
SbVec3f | workingProjPoint |
The projection point in working space. | |
SbVec3f | planePoint |
Information about the plane used for intersection testing. | |
SbVec3f | planeDir |
normal direction | |
float | planeDist |
distance from sphere center | |
SbPlane | tolPlane |
the plane itself | |
Protected Attributes inherited from SbSphereProjector | |
bool | intersectFront |
Are intersections done on the front half (if not, they're done on the back half) of the sphere? | |
SbSphere | sphere |
The sphere being used. | |
bool | orientToEye |
TRUE if always oriented to eye. | |
bool | needSetup |
Set TRUE whenever sphere, work space or orientation changes. | |
SbVec3f | lastPoint |
cached last point on this projector | |
Protected Attributes inherited from SbProjector | |
SbViewVolume | viewVol |
SbMatrix | worldToWorking |
SbMatrix | workingToWorld |
SbSphereSheetProjector projects a window space point (usually based on the mouse location) onto the surface of a sphere with a hyperbolic sheet draped over it. This allows smooth transitions onto and off of the sphere. Two projected points can produce a rotation about the sphere's center. When the mouse position projects on to the sheet, the rotations will be as if the sheet is being dragged, causing the sphere to roll beneath it.
Incremental changes (delta rotation) can be computed during interactive sessions. Sphere projectors are typically used to write interactive 3D manipulators and viewers.
Definition at line 99 of file SbSphereSheetProjector.h.
SbSphereSheetProjector::SbSphereSheetProjector | ( | bool | orientToEye = TRUE | ) |
The first uses a default sphere centered at the origin with radius 1.0; the sphere is supplied in the second. The orientToEye parameter determines whether the sheet is perpendicular to the eye, or perpendicular to the sphere's Z axis. Setting that parameter to TRUE (the default) specifies that the sheet be perpendicular to the eye, which is most often the desired behavior.
The default view volume is undefined, and the working space is identity.
|
inline |
Definition at line 120 of file SbSphereSheetProjector.h.
|
virtual |
The caller is responsible for deleting the copy when done.
Implements SbProjector.
|
virtual |
Implements SbSphereProjector.
The point should be normalized from 0-1, with (0,0) at the lower-left.
Implements SbSphereProjector.
|
protected |
|
protected |
Definition at line 144 of file SbSphereSheetProjector.h.
|
protected |
Definition at line 145 of file SbSphereSheetProjector.h.
|
protected |
point on plane
Definition at line 143 of file SbSphereSheetProjector.h.
|
protected |
Definition at line 146 of file SbSphereSheetProjector.h.
|
protected |
Definition at line 140 of file SbSphereSheetProjector.h.