'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SbCylinderSectionProjector(3IV) .SH NAME SbCylinderSectionProjector \(em cylinder-section projector .SH INHERITS FROM SbProjector > SbCylinderProjector > SbCylinderSectionProjector .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Methods from class SbCylinderSectionProjector: .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\ \} \*(CbSbCylinderSectionProjector\*(Cr(float edgeTol = .9, 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\ \} \*(CbSbCylinderSectionProjector\*(Cr(const SbCylinder &cyl, float edgeTol = .9, 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~SbCylinderSectionProjector\*(Cr() .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\ \} \*(CbsetTolerance\*(Cr(float edgeTol) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crfloat .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTolerance\*(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\ \} \*(CbisWithinTolerance\*(Cr(const SbVec3f &point) .sp .in 1i \f1Methods from class SbCylinderProjector: .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\ \} \*(CbsetCylinder\*(Cr(const SbCylinder &cyl) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbCylinder & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetCylinder\*(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 \*(CbSbCylinderSectionProjector\f1 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. .sp Incremental changes (delta rotation) can \&be computed during interactive sessions. Cylinder 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\ \} \*(CbSbCylinderSectionProjector\*(Cr(float edgeTol = .9, 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\ \} \*(CbSbCylinderSectionProjector\*(Cr(const SbCylinder &cyl, float edgeTol = .9, SbBool orientToEye = TRUE) .br .in 1i \f1Constructors. 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 \*(CbedgeTol\f1. 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 \*(CborientToEye\f1 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. .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~SbCylinderSectionProjector\*(Cr() .br .in 1i \f1Destructor. .sp .in 0.5i .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\ \} \*(CbsetTolerance\*(Cr(float edgeTol) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crfloat .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTolerance\*(Cr() const .br .in 1i \f1Set 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. .sp .in 0.5i .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\ \} \*(CbisWithinTolerance\*(Cr(const SbVec3f &point) .br .in 1i \f1Find whether this point on the cylinder or tolerance plane is within tolerance. .sp .in 0.5i .SH SEE ALSO \*(CbSbCylinderPlaneProjector, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector, SbSpherePlaneProjector, SbSphereProjector, SbSphereSectionProjector, SbSphereSheetProjector