'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SbSphereSheetProjector(3IV) .SH NAME SbSphereSheetProjector \(em sphere-sheet projector .SH INHERITS FROM SbProjector > SbSphereProjector > SbSphereSheetProjector .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Methods from class SbSphereSheetProjector: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSbSphereSheetProjector\*(Cr(SbBool orientToEye = TRUE) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSbSphereSheetProjector\*(Cr(const SbSphere &sph, SbBool orientToEye = TRUE) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cb~SbSphereSheetProjector\*(Cr() .sp .in 1i \f1Methods from class SbSphereProjector: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbprojectAndGetRotation\*(Cr(const SbVec2f &point, SbRotation &rot) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbRotation .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRotation\*(Cr(const SbVec3f &point1, const SbVec3f &point2) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetSphere\*(Cr(const SbSphere &sph) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbSphere & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetSphere\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetOrientToEye\*(Cr(SbBool orientToEye) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOrientToEye\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetFront\*(Cr(SbBool isFront) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisFront\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPointInFront\*(Cr(const SbVec3f &point) const .sp .in 1i \f1Methods from class SbProjector: .in 0.5i .sp .ta 23m .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crvirtual SbVec3f .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbproject\*(Cr(const SbVec2f &point) .br .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetViewVolume\*(Cr(const SbViewVolume &vol) .br .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crconst SbViewVolume & .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetViewVolume\*(Cr() const .br .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetWorkingSpace\*(Cr(const SbMatrix &space) .br .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crconst SbMatrix & .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetWorkingSpace\*(Cr() const .br .in 1i+23n .ti 0.5i .ta 23m .ds Pt \*(Crvirtual SbProjector * .ie \w'\*(Pt'>=23n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbcopy\*(Cr() const .sp .SH DESCRIPTION \*(CbSbSphereSheetProjector\f1 projects a window space point (usually based on the mouse location) onto the surface of a sphere with a hyperbolic sheet draped over it. This allows smooth transitions onto and off of the sphere. Two \&projected points can produce a rotation about the sphere's center. When the mouse position projects on to the sheet, the rotations will be as if the sheet is being dragged, causing the sphere to roll beneath \&it. .sp Incremental changes (delta rotation) can be computed during interactive sessions. Sphere projectors are typically used to write interactive 3D manipulators and viewers. .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSbSphereSheetProjector\*(Cr(SbBool orientToEye = TRUE) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSbSphereSheetProjector\*(Cr(const SbSphere &sph, SbBool orientToEye = TRUE) .br .in 1i \f1Constructors. The first uses a default sphere centered at the origin with radius 1.0; the sphere is supplied in the second. The \*(CborientToEye\f1 parameter determines whether the sheet is perpendicular to the eye, or perpendicular \&to the sphere's Z axis. Setting that parameter to TRUE (the default) specifies that the sheet be perpendicular to the eye, which is most often the desired behavior. .sp The default view volume is undefined, \&and the working space is identity. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cb~SbSphereSheetProjector\*(Cr() .br .in 1i \f1Destructor. .sp .in 0.5i .SH SEE ALSO \*(CbSbCylinderProjector, SbCylinderPlaneProjector, SbCylinderSectionProjector, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector, SbSpherePlaneProjector