SbSphereSectionProjector(3IV)

SbSphereSectionProjector - sphere-section projector

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

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.


FILE FORMAT/DEFAULTS
     SphereSectionProjector {
     }

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