Open Inventor Reference
|
Cylinder-section projector. More...
#include <Inventor/projectors/SbCylinderSectionProjector.h>
Public Member Functions | |
SbCylinderSectionProjector (float edgeTol=.9, bool orientToEye=TRUE) | |
Default constructor. More... | |
SbCylinderSectionProjector (const SbCylinder &cyl, float edgeTol=.9, bool orientToEye=TRUE) | |
Constructor taking the cylinder. More... | |
~SbCylinderSectionProjector () | |
Destructor. More... | |
virtual SbProjector * | copy () const |
Returns an instance that is a copy of this instance. More... | |
virtual SbVec3f | project (const SbVec2f &point) |
Apply the projector using the given point, returning the point in three dimensions that it projects to. More... | |
virtual SbRotation | getRotation (const SbVec3f &point1, const SbVec3f &point2) |
Computes a rotation based on two points on this projector. More... | |
void | setTolerance (float edgeTol) |
float | getTolerance () const |
Set and get the edge tolerance as a fraction of the radius of the cylinder. More... | |
bool | isWithinTolerance (const SbVec3f &point) |
Find whether this point on the cylinder or tolerance plane is within tolerance. More... | |
Public Member Functions inherited from SbCylinderProjector | |
~SbCylinderProjector () | |
Destructor. More... | |
SbVec3f | projectAndGetRotation (const SbVec2f &point, SbRotation &rot) |
Apply the projector using the given point, returning the point in three dimensions that it projects to. More... | |
void | setCylinder (const SbCylinder &cyl) |
Set and get the cylinder on which to project points. More... | |
const SbCylinder & | getCylinder () const |
Set and get the cylinder on which to project points. More... | |
void | setOrientToEye (bool orientToEye) |
Set and get whether the projector should always be oriented towards the eye. More... | |
bool | isOrientToEye () const |
Set and get whether the projector should always be oriented towards the eye. More... | |
void | setFront (bool isFront) |
Set and get whether the projector should intersect the half of the cylinder that faces the eye. More... | |
bool | isFront () const |
Set and get whether the projector should intersect the half of the cylinder that faces the eye. More... | |
bool | isPointInFront (const SbVec3f &point) const |
Set and get whether the projector should intersect the half of the cylinder that faces the eye. More... | |
virtual void | setWorkingSpace (const SbMatrix &space) |
Set the transform space to work in. More... | |
Public Member Functions inherited from SbProjector | |
virtual void | setViewVolume (const SbViewVolume &vol) |
Set the view volume to use for the projection. More... | |
const SbViewVolume & | getViewVolume () const |
Get the view volume to use for the projection. More... | |
const SbMatrix & | getWorkingSpace () const |
Get the transform space to work in. More... | |
Protected Member Functions | |
virtual void | setupTolerance () |
Sets up the tolerance ring. More... | |
Protected Member Functions inherited from SbCylinderProjector | |
SbCylinderProjector (bool orientToEye) | |
Constructors The default cylinder to is centered about the Y axis and has a radius of 1.0. More... | |
SbCylinderProjector (const SbCylinder &cyl, bool orientToEye) | |
Protected Member Functions inherited from SbProjector | |
SbProjector () | |
Default constructor. More... | |
virtual | ~SbProjector () |
SbLine | getWorkingLine (const SbVec2f &point) const |
Given this mouse point, return the line it projects to in working space. More... | |
Protected Attributes | |
float | tolerance |
Information about the ring tolerance. More... | |
float | tolDist |
dist from planeLine to cylinder More... | |
SbVec3f | planeDir |
Information about the plane used for intersection testing. More... | |
SbLine | planeLine |
line parallel to axis, but in plane More... | |
float | planeDist |
distance from cylinder center More... | |
SbPlane | tolPlane |
the plane itself More... | |
Protected Attributes inherited from SbCylinderProjector | |
bool | intersectFront |
Are intersections done on the front half ( if not, they're done on th e back half) of the cylinder? More... | |
SbCylinder | cylinder |
Cylinder for this projector. More... | |
bool | orientToEye |
TRUE if always oriented to eye. More... | |
bool | needSetup |
Set TRUE whenever cylinder, work space or orientation changes. More... | |
SbVec3f | lastPoint |
Cached last point on this projector. More... | |
Protected Attributes inherited from SbProjector | |
SbViewVolume | viewVol |
SbMatrix | worldToWorking |
SbMatrix | workingToWorld |
SbCylinderSectionProjector projects a window space point (usually based on the mouse location) onto the section of a cylinder that has been sliced by a plane. Two projected points can produce a rotation along the cylinder's axis. The tolerance slice can be specified as a fraction of the radius of the cylinder. The projection point will not extend beyond the sliced portion of the cylinder.
Incremental changes (delta rotation) can be computed during interactive sessions. Cylinder projectors are typically used to write interactive 3D manipulators and viewers.
Definition at line 91 of file SbCylinderSectionProjector.h.
SbCylinderSectionProjector::SbCylinderSectionProjector | ( | float | edgeTol = .9 , |
bool | orientToEye = TRUE |
||
) |
The default view volume is undefined. The default working space is identity (world space). The default cylinder is centered about the Y axis and has a radius of 1.0. The default edge tolerance is .9. The default eye orientation is TRUE.
SbCylinderSectionProjector::SbCylinderSectionProjector | ( | const SbCylinder & | cyl, |
float | edgeTol = .9 , |
||
bool | orientToEye = TRUE |
||
) |
|
inline |
Definition at line 109 of file SbCylinderSectionProjector.h.
|
virtual |
The caller is responsible for deleting the copy when done.
Implements SbProjector.
Reimplemented in SbCylinderPlaneProjector.
|
virtual |
Implements SbCylinderProjector.
Reimplemented in SbCylinderPlaneProjector.
|
inline |
If this is 1.0, the projector is a half cylinder. If this is .1, the projector is a slice of the cylinder with radius .1*radius. Default is .9.
Definition at line 131 of file SbCylinderSectionProjector.h.
bool SbCylinderSectionProjector::isWithinTolerance | ( | const SbVec3f & | point | ) |
The point should be normalized from 0-1, with (0,0) at the lower-left.
Implements SbCylinderProjector.
Reimplemented in SbCylinderPlaneProjector.
void SbCylinderSectionProjector::setTolerance | ( | float | edgeTol | ) |
|
protectedvirtual |
|
protected |
normal direction
Definition at line 146 of file SbCylinderSectionProjector.h.
|
protected |
Definition at line 148 of file SbCylinderSectionProjector.h.
|
protected |
Definition at line 147 of file SbCylinderSectionProjector.h.
|
protected |
Definition at line 143 of file SbCylinderSectionProjector.h.
|
protected |
the edge tolerance
Definition at line 142 of file SbCylinderSectionProjector.h.
|
protected |
Definition at line 149 of file SbCylinderSectionProjector.h.