SbSphereSectionProjector(3IV)

SbSphereSectionProjector (SbSphSectProj) - sphere-section projector

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SbSphereSectionProjector (SbSphSectProj) - sphere-section projector

INHERITS FROM
     SbProjector > SbSphereProjector > SbSphereSectionProjector

SYNOPSIS
     #include <Inventor_c/projectors/SbSphereSectionProjector.h>

     typedef SbSphereSectionProjector
                         SbSphSectProj

          Functions from class SbSphereSectionProjector:

     SbSphereSectionProjector *  SbSphSectProjCreate(float edgeTol = .9,
                                      SbBool orientToEye = TRUE)
     SbSphereSectionProjector *  SbSphSectProjCreateSph(const SbSphere *sph,
                                      float edgeTol = .9, SbBool orientToEye =
                                      TRUE)
     void                        SbSphSectProjDelete(SbSphSectProj *this)
     void                        SbSphSectProjSetTol(SbSphSectProj *this,
                                      float edgeTol)
     float                       SbSphSectProjGetTol(const SbSphSectProj
                                      *this)
     void                        SbSphSectProjSetRadialFactor(SbSphSectProj
                                      *this, float radialFactor = 0.0)
     float                       SbSphSectProjGetRadialFactor(const
                                      SbSphSectProj *this)
     SbBool                      SbSphSectProjIsWithinTol(SbSphSectProj *this,
                                      const SbVec3f *point)

          Functions from class SbSphereProjector:

     SbVec3f             SbSphSectProjProjectGetRot(SbSphSectProj *this, const
                              SbVec2f *point, SbRotation *rot)
     SbRotation          SbSphSectProjGetRot(SbSphSectProj *this, const
                              SbVec3f *point1, const SbVec3f *point2)
     void                SbSphSectProjSetSph(SbSphSectProj *this, const
                              SbSphere *sph)
     const SbSphere *    SbSphSectProjGetSph(const SbSphSectProj *this)
     void                SbSphSectProjSetOrientToEye(SbSphSectProj *this,
                              SbBool orientToEye)
     SbBool              SbSphSectProjIsOrientToEye(const SbSphSectProj *this)
     void                SbSphSectProjSetFront(SbSphSectProj *this, SbBool
                              isFront)
     SbBool              SbSphSectProjIsFront(const SbSphSectProj *this)
     SbBool              SbSphSectProjIsPointInFront(const SbSphSectProj
                              *this, const SbVec3f *point)

          Functions from class SbProjector:

     SbVec3f               SbSphSectProjProject(SbSphSectProj *this, const
                                SbVec2f *point)
     void                  SbSphSectProjSetViewVol(SbSphSectProj *this, const
                                SbViewVolume *vol)
     const SbViewVolume *  SbSphSectProjGetViewVol(const SbSphSectProj *this)
     void                  SbSphSectProjSetWorkSpace(SbSphSectProj *this,
                                const SbMatrix *space)
     const SbMatrix *      SbSphSectProjGetWorkSpace(const SbSphSectProj
                                *this)
     SbProjector *         SbSphSectProjCopy(const SbSphSectProj *this)


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.

FUNCTIONS
     SbSphereSectionProjector *  SbSphSectProjCreate(float edgeTol = .9,
                                      SbBool orientToEye = TRUE)
     SbSphereSectionProjector *  SbSphSectProjCreateSph(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.

     void                        SbSphSectProjDelete(SbSphSectProj *this)
          Destructor.

     void                        SbSphSectProjSetTol(SbSphSectProj *this,
                                      float edgeTol)
     float                       SbSphSectProjGetTol(const SbSphSectProj
                                      *this)
          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                        SbSphSectProjSetRadialFactor(SbSphSectProj
                                      *this, float radialFactor = 0.0)
     float                       SbSphSectProjGetRadialFactor(const
                                      SbSphSectProj *this)
          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                      SbSphSectProjIsWithinTol(SbSphSectProj *this,
                                      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