1SbSphereSectionProjector(3IV)() SbSphereSectionProjector(3IV)()
2
3
4
6 SbSphereSectionProjector — sphere-section projector
7
9 SbProjector > SbSphereProjector > SbSphereSectionProjector
10
12 #include <Inventor/projectors/SbSphereSectionProjector.h>
13
14 Methods from class SbSphereSectionProjector:
15
16 SbSphereSectionProjector(float edgeTol = .9, SbBool
17 orientToEye = TRUE)
18 SbSphereSectionProjector(const SbSphere &sph, float
19 edgeTol = .9, SbBool orientToEye = TRUE)
20 ~SbSphereSectionProjector()
21 void setTolerance(float edgeTol)
22 float getTolerance() const
23 void setRadialFactor(float radialFactor = 0.0)
24 float getRadialFactor() const
25 SbBool isWithinTolerance(const SbVec3f &point)
26
27 Methods from class SbSphereProjector:
28
29 SbVec3f projectAndGetRotation(const SbVec2f &point, SbRota‐
30 tion &rot)
31 virtual SbRotation getRotation(const SbVec3f &point1, const SbVec3f
32 &point2)
33 void setSphere(const SbSphere &sph)
34 const SbSphere & getSphere() const
35 void setOrientToEye(SbBool orientToEye)
36 SbBool isOrientToEye() const
37 void setFront(SbBool isFront)
38 SbBool isFront() const
39 SbBool isPointInFront(const SbVec3f &point) const
40
41 Methods from class SbProjector:
42
43 virtual SbVec3f project(const SbVec2f &point)
44 virtual void setViewVolume(const SbViewVolume &vol)
45 const SbViewVolume & getViewVolume() const
46 virtual void setWorkingSpace(const SbMatrix &space)
47 const SbMatrix & getWorkingSpace() const
48 virtual SbProjector * copy() const
49
50
52 SbSphereSectionProjector projects a window space point (usually based
53 on the mouse location) onto the section of a sphere that has been
54 sliced by a plane. Two projected points can produce a rotation about
55 the sphere's center. The tolerance slice can be specified as a frac‐
56 tion of the radius of the sphere. The projection point will not extend
57 beyond the sliced portion of the sphere.
58
59 Incremental changes (delta rotation) can be computed during interactive
60 sessions. Sphere projectors are typically used to write interactive 3D
61 manipulators and viewers.
62
64 SbSphereSectionProjector(float edgeTol = .9, SbBool
65 orientToEye = TRUE)
66 SbSphereSectionProjector(const SbSphere &sph, float
67 edgeTol = .9, SbBool orientToEye = TRUE)
68 Constructors. The first uses a default sphere centered at the origin
69 with radius 1.0; the sphere is supplied in the second. The position
70 of the plane which slices the sphere into a section is specified as
71 a fraction of the sphere radius with the parameter edgeTol. A toler‐
72 ance value of 1.0 positions the plane down the center of the sphere.
73 A tolerance value of 0.5 defines the longitudinal plane halfway
74 between the center and the outside edge of the sphere. The default
75 value is .9, so that almost half the sphere is in front of the
76 plane. The orientToEye parameter determines whether the plane is
77 perpendicular to the eye, or perpendicular to the sphere's Z axis.
78 Setting that parameter to TRUE (the default) specifies that the
79 plane be perpendicular to the eye, which is most often the desired
80 behavior.
81
82 The default view volume is undefined, and the working space is iden‐
83 tity.
84
85 ~SbSphereSectionProjector()
86 Destructor.
87
88 void setTolerance(float edgeTol)
89 float getTolerance() const
90 Set and get the edge tolerance as a fraction of the radius of the
91 sphere. If this is 1.0, the projector is a hemisphere. If this is
92 .1, the projector is a slice of the sphere with radius .1*radius.
93 Default is .9.
94
95 void setRadialFactor(float radialFactor = 0.0)
96 float getRadialFactor() const
97 Set and get the radial rotation factor. When the mouse is dragged
98 off the edge of the sphere, the mouse motion can be classified as
99 either tangential (moving in a circle around the sphere) or radial
100 (moving toward or away from the center). The tangential motion will
101 always map to a rotation around the center, (like the hands of a
102 clock). The radial motion, by default, has no effect. But if you set
103 the radialFactor to be > 0.0, this motion will make the sphere
104 rotate as if the mouse is pulling the top of the sphere out toward
105 the mouse. If radialFactor = 1.0, then pulling has a `normal' feel
106 (that is, the mouse motion causes the same amount of rotation as if
107 you had rotated by hitting the actual surface of the sphere).
108 Default is 0.0
109
110 SbBool isWithinTolerance(const SbVec3f &point)
111 Find whether this point on the sphere or tolerance plane is within
112 tolerance.
113
114
116 SbCylinderProjector, SbCylinderSectionProjector, SbCylinderPlaneProjec‐
117 tor, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector,
118 SbSpherePlaneProjector, SbSphereSheetProjector
119
120
121
122
123 SbSphereSectionProjector(3IV)()