Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SbCylinderPlaneProjector — cylinder-plane projector

INHERITS FROM

       SbProjector > SbCylinderProjector > SbCylinderSectionProjector > SbCylinderPlaneProjector

SYNOPSIS

       #include <Inventor/projectors/SbCylinderPlaneProjector.h>

          Methods from class SbCylinderPlaneProjector:

                         SbCylinderPlaneProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
                         SbCylinderPlaneProjector(const  SbCylinder  &cyl,  float  edgeTol  = .9,
                              SbBool orientToEye = TRUE)
                         ~SbCylinderPlaneProjector()

          Methods from class SbCylinderSectionProjector:

     void                setTolerance(float edgeTol)
     float               getTolerance() const
     SbBool              isWithinTolerance(const SbVec3f &point)

          Methods from class SbCylinderProjector:

     SbVec3f             projectAndGetRotation(const SbVec2f &point, SbRotation &rot)
     virtual SbRotation  getRotation(const SbVec3f &point1, const SbVec3f &point2)
     void                setCylinder(const SbCylinder &cyl)
     const SbCylinder &  getCylinder() const
     void                setOrientToEye(SbBool orientToEye)
     SbBool              isOrientToEye() const
     void                setFront(SbBool isFront)
     SbBool              isFront() const
     SbBool              isPointInFront(const SbVec3f &point) const

          Methods from class SbProjector:

     virtual SbVec3f        project(const SbVec2f &point)
     virtual void           setViewVolume(const SbViewVolume &vol)
     const SbViewVolume &   getViewVolume() const
     virtual void           setWorkingSpace(const SbMatrix &space)
     const SbMatrix &       getWorkingSpace() const
     virtual SbProjector *  copy() const

DESCRIPTION

       SbCylinderPlaneProjector projects a  window  space  point  (usually  based  on  the  mouse
       location) onto a surface defined by a cylinder and plane cutting through the cylinder. Two
       projected points can produce a rotation along the cylinder's axis. When the mouse position
       projects  onto  the plane, the rotations will be as if the plane is being dragged, causing
       the cylinder to roll beneath it.

       Incremental changes (delta rotation) can be computed during interactive sessions. Cylinder
       projectors are typically used to write interactive 3D manipulators and viewers.

METHODS

                         SbCylinderPlaneProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
                         SbCylinderPlaneProjector(const  SbCylinder  &cyl,  float  edgeTol  = .9,
                              SbBool orientToEye = TRUE)
          Constructors. The first uses a default cylinder aligned with the  Y  axis  with  radius
          1.0;  the cylinder is supplied in the second. The position of the plane is specified as
          a fraction of the cylinder radius with the parameter edgeTol. A tolerance value of  1.0
          positions  the  plane down the center of the cylinder. A tolerance value of 0.5 defines
          the longitudinal plane halfway between the center and the outside edge of the cylinder.
          The default value is .9, so that almost half the cylinder is in front of the plane. The
          orientToEye parameter determines whether the plane is  perpendicular  to  the  eye,  or
          perpendicular  to  the  cylinder's Z axis. Setting that parameter to TRUE (the default)
          specifies that the plane be perpendicular to the eye, which is most often  the  desired
          behavior.

          The default view volume is undefined, and the working space is identity.

                         ~SbCylinderPlaneProjector()
          Destructor.

SEE ALSO

       SbCylinderSheetProjector,   SbLineProjector,   SbPlaneProjector,   SbSpherePlaneProjector,
       SbSphereProjector, SbSphereSectionProjector, SbSphereSheetProjector

                                                                  SbCylinderPlaneProjector(3IV)()