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

NAME

       SbSphereSectionProjector — sphere-section projector

INHERITS FROM

       SbProjector > SbSphereProjector > SbSphereSectionProjector

SYNOPSIS

       #include <Inventor/projectors/SbSphereSectionProjector.h>

          Methods from class SbSphereSectionProjector:

                         SbSphereSectionProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
                         SbSphereSectionProjector(const  SbSphere &sph, float edgeTol = .9, SbBool orientToEye =
                              TRUE)
                         ~SbSphereSectionProjector()
     void                setTolerance(float edgeTol)
     float               getTolerance() const
     void                setRadialFactor(float radialFactor = 0.0)
     float               getRadialFactor() const
     SbBool              isWithinTolerance(const SbVec3f &point)

          Methods from class SbSphereProjector:

     SbVec3f             projectAndGetRotation(const SbVec2f &point, SbRotation &rot)
     virtual SbRotation  getRotation(const SbVec3f &point1, const SbVec3f &point2)
     void                setSphere(const SbSphere &sph)
     const SbSphere &    getSphere() 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

       SbSphereSectionProjector projects a window space point (usually based on the  mouse  location)  onto  the
       section  of  a  sphere that has been sliced by a plane. Two projected points can produce a rotation about
       the sphere's center.  The tolerance slice can be specified as a fraction of the radius of the sphere. The
       projection point will not extend beyond the sliced portion of the sphere.

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

METHODS

                         SbSphereSectionProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
                         SbSphereSectionProjector(const SbSphere &sph, float edgeTol = .9, SbBool orientToEye  =
                              TRUE)
          Constructors.  The  first  uses a default sphere centered at the origin with radius 1.0; the sphere is
          supplied in the second. The position of the plane which slices the sphere into a section is  specified
          as  a fraction of the sphere radius with the parameter edgeTol. A tolerance value of 1.0 positions the
          plane down the center of the sphere. A tolerance value of 0.5 defines the longitudinal  plane  halfway
          between  the  center  and the outside edge of the sphere. The default value is .9, so that almost half
          the sphere is in front of the plane.  The  orientToEye  parameter  determines  whether  the  plane  is
          perpendicular to the eye, or perpendicular to the sphere'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.

                         ~SbSphereSectionProjector()
          Destructor.

     void                setTolerance(float edgeTol)
     float               getTolerance() const
          Set  and  get  the  edge  tolerance  as  a  fraction  of the radius of the sphere. If this is 1.0, the
          projector is a hemisphere. If this is .1,  the  projector  is  a  slice  of  the  sphere  with  radius
          .1*radius. Default is .9.

     void                setRadialFactor(float radialFactor = 0.0)
     float               getRadialFactor() const
          Set  and  get  the  radial  rotation factor. When the mouse is dragged off the edge of the sphere, the
          mouse motion can be classified as either tangential (moving in a circle around the sphere)  or  radial
          (moving  toward  or  away from the center). The tangential motion will always map to a rotation around
          the center, (like the hands of a clock). The radial motion, by default, has no effect. But if you  set
          the  radialFactor  to be > 0.0, this motion will make the sphere rotate as if the mouse is pulling the
          top of the sphere out toward the mouse. If radialFactor = 1.0, then pulling has a `normal' feel  (that
          is,  the  mouse  motion causes the same amount of rotation as if you had rotated by hitting the actual
          surface of the sphere). Default is 0.0

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

SEE ALSO

       SbCylinderProjector,  SbCylinderSectionProjector,   SbCylinderPlaneProjector,   SbCylinderSheetProjector,
       SbLineProjector, SbPlaneProjector, SbSpherePlaneProjector, SbSphereSheetProjector

                                                                                 SbSphereSectionProjector(3IV)()