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

NAME

       SbCylinderSectionProjector — cylinder-section projector

INHERITS FROM

       SbProjector > SbCylinderProjector > SbCylinderSectionProjector

SYNOPSIS

       #include <Inventor/projectors/SbCylinderSectionProjector.h>

          Methods from class SbCylinderSectionProjector:

                         SbCylinderSectionProjector(float  edgeTol  =  .9,  SbBool  orientToEye =
                              TRUE)
                         SbCylinderSectionProjector(const SbCylinder &cyl, float  edgeTol  =  .9,
                              SbBool orientToEye = TRUE)
                         ~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

       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.

METHODS

                         SbCylinderSectionProjector(float edgeTol  =  .9,  SbBool  orientToEye  =
                              TRUE)
                         SbCylinderSectionProjector(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 which slices the
          cylinder into a section 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.

                         ~SbCylinderSectionProjector()
          Destructor.

     void                setTolerance(float edgeTol)
     float               getTolerance() const
          Set  and get the edge tolerance as a fraction of the radius of the cylinder. 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.

     SbBool              isWithinTolerance(const SbVec3f &point)
          Find whether this point on the cylinder or tolerance plane is within tolerance.

SEE ALSO

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

                                                                SbCylinderSectionProjector(3IV)()