1SbSpherePlaneProjector(3IV)() SbSpherePlaneProjector(3IV)()
2
3
4
6 SbSpherePlaneProjector — sphere-plane projector
7
9 SbProjector > SbSphereProjector > SbSphereSectionProjector > SbSphere‐
10 PlaneProjector
11
13 #include <Inventor/projectors/SbSpherePlaneProjector.h>
14
15 Methods from class SbSpherePlaneProjector:
16
17 SbSpherePlaneProjector(float edgeTol = .9, SbBool
18 orientToEye = TRUE)
19 SbSpherePlaneProjector(const SbSphere &sph, float
20 edgeTol = .9, SbBool orientToEye = TRUE)
21 ~SbSpherePlaneProjector()
22
23 Methods from class SbSphereSectionProjector:
24
25 void setTolerance(float edgeTol)
26 float getTolerance() const
27 void setRadialFactor(float radialFactor = 0.0)
28 float getRadialFactor() const
29 SbBool isWithinTolerance(const SbVec3f &point)
30
31 Methods from class SbSphereProjector:
32
33 SbVec3f projectAndGetRotation(const SbVec2f &point, SbRota‐
34 tion &rot)
35 virtual SbRotation getRotation(const SbVec3f &point1, const SbVec3f
36 &point2)
37 void setSphere(const SbSphere &sph)
38 const SbSphere & getSphere() const
39 void setOrientToEye(SbBool orientToEye)
40 SbBool isOrientToEye() const
41 void setFront(SbBool isFront)
42 SbBool isFront() const
43 SbBool isPointInFront(const SbVec3f &point) const
44
45 Methods from class SbProjector:
46
47 virtual SbVec3f project(const SbVec2f &point)
48 virtual void setViewVolume(const SbViewVolume &vol)
49 const SbViewVolume & getViewVolume() const
50 virtual void setWorkingSpace(const SbMatrix &space)
51 const SbMatrix & getWorkingSpace() const
52 virtual SbProjector * copy() const
53
54
56 SbSpherePlaneProjector projects a window space point (usually based on
57 the mouse location) onto a surface defined by a sphere and plane cut‐
58 ting through the sphere. Two projected points can produce a rotation
59 about the sphere's center. When the mouse position projects onto the
60 plane, the rotations will be as if the plane is being dragged, causing
61 the sphere to roll beneath it.
62
63 Incremental changes (delta rotation) can be computed during interactive
64 sessions. Sphere projectors are typically used to write interactive 3D
65 manipulators and viewers.
66
68 SbSpherePlaneProjector(float edgeTol = .9, SbBool
69 orientToEye = TRUE)
70 SbSpherePlaneProjector(const SbSphere &sph, float
71 edgeTol = .9, SbBool orientToEye = TRUE)
72 Constructors. The first uses a default sphere centered at the origin
73 with radius 1.0; the sphere is supplied in the second. The position
74 of the plane is specified as a fraction of the sphere radius with
75 the parameter edgeTol. A tolerance value of 1.0 positions the plane
76 down the center of the sphere. A tolerance value of 0.5 defines the
77 longitudinal plane halfway between the center and the outside edge
78 of the sphere. The default value is .9, so that almost half the
79 sphere is in front of the plane. The orientToEye parameter deter‐
80 mines whether the plane is perpendicular to the eye, or perpendicu‐
81 lar to the sphere's Z axis. Setting that parameter to TRUE (the
82 default) specifies that the plane be perpendicular to the eye, which
83 is most often the desired behavior.
84
85 The default view volume is undefined, and the working space is iden‐
86 tity.
87
88 ~SbSpherePlaneProjector()
89 Destructor.
90
91
93 SbCylinderProjector, SbCylinderPlaneProjector, SbCylinderSectionProjec‐
94 tor, SbCylinderSheetProjector, SbLineProjector, SbPlaneProjector,
95 SbSphereSheetProjector
96
97
98
99
100 SbSpherePlaneProjector(3IV)()