Open Inventor Reference
|
Cylinder-section projector. More...
#include <Inventor/projectors/SbCylinderSectionProjector.h>
Public Member Functions | |
SbCylinderSectionProjector (float edgeTol=.9, SbBool orientToEye=TRUE) | |
Default constructor. | |
SbCylinderSectionProjector (const SbCylinder &cyl, float edgeTol=.9, SbBool orientToEye=TRUE) | |
Constructor taking the cylinder. | |
~SbCylinderSectionProjector () | |
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. | |
void | setTolerance (float edgeTol) |
float | getTolerance () const |
Set and get the edge tolerance as a fraction of the radius of the cylinder. | |
SbBool | isWithinTolerance (const SbVec3f &point) |
Find whether this point on the cylinder or tolerance plane is within tolerance. | |
Protected Member Functions | |
virtual void | setupTolerance () |
Sets up the tolerance ring. | |
Protected Attributes | |
float | tolerance |
Information about the ring tolerance. | |
float | tolDist |
dist from planeLine to cylinder | |
SbVec3f | planeDir |
Information about the plane used for intersection testing. | |
SbLine | planeLine |
line parallel to axis, but in plane | |
float | planeDist |
distance from cylinder center | |
SbPlane | tolPlane |
the plane itself |
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 , |
SbBool | 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 , |
||
SbBool | orientToEye = TRUE |
||
) |
SbCylinderSectionProjector::~SbCylinderSectionProjector | ( | ) | [inline] |
Definition at line 109 of file SbCylinderSectionProjector.h.
virtual SbProjector* SbCylinderSectionProjector::copy | ( | ) | const [virtual] |
The caller is responsible for deleting the copy when done.
Implements SbProjector.
Reimplemented in SbCylinderPlaneProjector.
virtual SbRotation SbCylinderSectionProjector::getRotation | ( | const SbVec3f & | point1, |
const SbVec3f & | point2 | ||
) | [virtual] |
Implements SbCylinderProjector.
Reimplemented in SbCylinderPlaneProjector.
float SbCylinderSectionProjector::getTolerance | ( | ) | const [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.
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 | ) |
virtual void SbCylinderSectionProjector::setupTolerance | ( | ) | [protected, virtual] |
SbVec3f SbCylinderSectionProjector::planeDir [protected] |
normal direction
Definition at line 146 of file SbCylinderSectionProjector.h.
float SbCylinderSectionProjector::planeDist [protected] |
Definition at line 148 of file SbCylinderSectionProjector.h.
SbLine SbCylinderSectionProjector::planeLine [protected] |
Definition at line 147 of file SbCylinderSectionProjector.h.
float SbCylinderSectionProjector::tolDist [protected] |
Definition at line 143 of file SbCylinderSectionProjector.h.
float SbCylinderSectionProjector::tolerance [protected] |
the edge tolerance
Definition at line 142 of file SbCylinderSectionProjector.h.
SbPlane SbCylinderSectionProjector::tolPlane [protected] |
Definition at line 149 of file SbCylinderSectionProjector.h.