1SoJackDragger(3IV)() SoJackDragger(3IV)()
2
3
4
6 SoJackDragger — jack-shaped object you rotate, translate, or scale by
7 dragging with the mouse
8
10 SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
11 SoDragger > SoJackDragger
12
14 #include <Inventor/draggers/SoJackDragger.h>
15
16 Fields from class SoJackDragger:
17
18 SoSFRotation rotation
19 SoSFVec3f scaleFactor
20 SoSFVec3f translation
21
22 Fields from class SoDragger:
23
24 SoSFBool isActive
25
26 Fields from class SoInteractionKit:
27
28 SoSFEnum renderCaching
29 SoSFEnum boundingBoxCaching
30 SoSFEnum renderCulling
31 SoSFEnum pickCulling
32
33 Parts from class SoBaseKit:
34
35 (SoNodeKitListPart) callbackList
36
37 Methods from class SoJackDragger:
38
39 SoJackDragger()
40 static const SoNodekitCatalog *
41 getClassNodekitCatalog() const
42 static SoType getClassTypeId()
43
44 Methods from class SoDragger:
45
46 void addStartCallback(SoDraggerCB *f, void *userData =
47 NULL)
48 void removeStartCallback(SoDraggerCB *f, void *userData =
49 NULL)
50 void addMotionCallback(SoDraggerCB *f, void *userData =
51 NULL)
52 void removeMotionCallback(SoDraggerCB *f, void *userData =
53 NULL)
54 void addFinishCallback(SoDraggerCB *f, void *userData =
55 NULL)
56 void removeFinishCallback(SoDraggerCB *f, void *userData =
57 NULL)
58 void addValueChangedCallback(SoDraggerCB *f, void *user‐
59 Data = NULL)
60 void removeValueChangedCallback(SoDraggerCB *f, void
61 *userData = NULL)
62 SbBool enableValueChangedCallbacks()
63 void setMinGesture(int pixels)
64 int getMinGesture() const
65 static void setMinScale(float newMinScale)
66 static float getMinScale()
67
68 Methods from class SoInteractionKit:
69
70 virtual SbBool setPartAsPath(const SbName &partName, SoPath *surro‐
71 gatePath )
72
73 Methods from class SoBaseKit:
74
75 virtual const SoNodekitCatalog *
76 getNodekitCatalog() const
77 virtual SoNode * getPart(const SbName &partName, SbBool
78 makeIfNeeded)
79 SbString getPartString(const SoBase *part)
80 virtual SoNodeKitPath * createPathToPart(const SbName &partName, SbBool
81 makeIfNeeded, const SoPath *pathToExtend =
82 NULL)
83 virtual SbBool setPart(const SbName &partName, SoNode *newPart)
84 SbBool set(char *partName, char *parameters)
85 SbBool set(char *nameValuePairs)
86 static SbBool isSearchingChildren()
87 static void setSearchingChildren(SbBool newVal)
88
89 Methods from class SoNode:
90
91 void setOverride(SbBool state)
92 SbBool isOverride() const
93 SoNode * copy(SbBool copyConnections = FALSE) const
94 virtual SbBool affectsState() const
95 static SoNode * getByName(const SbName &name)
96 static int getByName(const SbName &name, SoNodeList &list)
97
98 Methods from class SoFieldContainer:
99
100 void setToDefaults()
101 SbBool hasDefaultValues() const
102 SbBool fieldsAreEqual(const SoFieldContainer *fc) const
103 void copyFieldValues(const SoFieldContainer *fc, SbBool
104 copyConnections = FALSE)
105 void get(SbString &fieldDataString)
106 virtual int getFields(SoFieldList &resultList) const
107 virtual SoField * getField(const SbName &fieldName) const
108 SbBool getFieldName(const SoField *field, SbName &fieldName)
109 const
110 SbBool isNotifyEnabled() const
111 SbBool enableNotify(SbBool flag)
112
113 Methods from class SoBase:
114
115 void ref()
116 void unref() const
117 void unrefNoDelete() const
118 void touch()
119 virtual SoType getTypeId() const
120 SbBool isOfType(SoType type) const
121 virtual void setName(const SbName &name)
122 virtual SbName getName() const
123
124 Macros from class SoBaseKit:
125
126 SO_GET_PART(kit, partName, partClass)
127 SO_CHECK_PART(kit, partName, partClass)
128
129
131 SoJackDragger is a composite dragger in the shape of a jack from the
132 children's game jacks. Three lines along the x, y, and z axes form the
133 central star shape, which you can drag with the mouse to rotate the
134 jack. Dragging any of the small cubes mounted at the end of the axes
135 will scale the jack uniformly in all 3 dimensions. At the core of the
136 jack is an SoDragPointDragger for translating the jack.
137
138 Each of these shapes is a different dragger with the default geometry
139 changed. All of them are parts of the jack dragger, which keeps them
140 moving together. The star is an SoRotateSphericalDragger, and dragging
141 it updates the rotation field of the jack dragger. The small cubes are
142 an SoScaleUniformDragger, tied to the scaleFactor field. The position
143 of the SoDragPointDragger is given by the translation field. As with
144 all draggers, if you change the fields the dragger will move to match
145 the new settings.
146
147 Remember: This is not an SoTransform!. If you want to move other
148 objects with this dragger, you can either:
149
150 [a] Use an SoJackManip, which is subclassed from SoTransform. It cre‐
151 ates one of these draggers and uses it as the interface to change its
152 fields. (see the SoJackManip man page).
153
154 [b] Use field-to-field connections to connect the fields of this drag‐
155 ger to those of any SoTransformation node.
156
157 You can change the parts in any instance of this dragger using set‐
158 Part(). The default part geometries are defined as resources for this
159 SoJackDragger class. They are detailed in the Dragger Resources section
160 of the online reference page for this class. You can make your program
161 use different default resources for the parts by copying the file
162 /usr/share/data/draggerDefaults/jackDragger.iv into your own directory,
163 editing the file, and then setting the environment variable SO_DRAG‐
164 GER_DIR to be a path to that directory.
165
167 SoSFRotation rotation
168 Orientation of the dragger.
169
170 SoSFVec3f scaleFactor
171 Scale of the dragger.
172
173 SoSFVec3f translation
174 Position of the dragger.
175
176
178 SoJackDragger()
179 Constructor.
180
181 static const SoNodekitCatalog *
182 getClassNodekitCatalog() const
183 Returns an SoNodekitCatalog for this class
184
185 static SoType getClassTypeId()
186 Returns type identifier for this class.
187
188
190 ┌────────────────────────────────────────────────────────────────┐
191 │ All parts │
192 │ NULL by │
193 │Part Name Part Type Default Type Default │
194 │ │
195 │callbackList NodeKitListPart -- yes │
196 │surroundScale SurroundScale -- yes │
197 │antiSquish AntiSquish -- no │
198 │scaler ScaleUniformDragger -- yes │
199 │rotator RotateSphericalDragger -- yes │
200 │translator DragPointDragger -- yes │
201 │ │
202 └────────────────────────────────────────────────────────────────┘
203 ┌───────────────────────────────────────────────────────────────┐
204 │ Extra information for list parts from above table │
205 │ │
206 │Part Name Container Type Permissible Types │
207 │ │
208 │callbackList Separator Callback, EventCallback │
209 │ │
210 └───────────────────────────────────────────────────────────────┘
212 .in 0n+.5i
213 Resource: jackRotatorRotator
214 .in 0n+.5i
215 Part: rotator.rotator
216 Appearance: The 'star' of the jack. Set of 3 white axes (lines)
217 Description: Picking star begins rotational dragging of the jack‐
218 Dragger.
219
220 .in 0n+.5i
221 Resource: jackRotatorRotatorActive
222 .in 0n+.5i
223 Part: rotator.rotatorActive
224 Appearance: Yellow version of the rotator.rotator part.
225 Description: Displayed while the jackDragger is being rotated
226
227 .in 0n+.5i
228 Resource: jackRotatorFeedback
229 .in 0n+.5i
230 Part: rotator.feedback
231 Appearance: Empty separator
232 Description: Removes any feedback geometry created in the construc‐
233 tor of the SoRotateSphericalDragger.
234
235 .in 0n+.5i
236 Resource: jackRotatorFeedbackActive
237 .in 0n+.5i
238 Part: rotator.feedbackActive
239 Appearance: Empty separator
240 Description: Removes any feedbackActive geometry created in the con‐
241 structor of the SoRotateSphericalDragger.
242
243 .in 0n+.5i
244 Resource: jackScalerScaler
245 .in 0n+.5i
246 Part: scaler.scaler
247 Appearance: Six small white cubes, the tips of the rotator star
248 Description: Picking this initiates uniform 3D scaling of the drag‐
249 ger.
250
251 .in 0n+.5i
252 Resource: jackScalerScalerActive
253 .in 0n+.5i
254 Part: scaler.scalerActive
255 Appearance: Yellow version of the scaler.scaler resource.
256 Description: Displayed while the dragger is being scaled.
257
258 .in 0n+.5i
259 Resource: jackScalerFeedback
260 .in 0n+.5i
261 Part: scaler.feedback
262 Appearance: Empty separator
263 Description: Removes any feedback geometry created in the construc‐
264 tor of the SoScaleUniformDragger.
265
266 .in 0n+.5i
267 Resource: jackScalerFeedbackActive
268 .in 0n+.5i
269 Part: scaler.feedbackActive
270 Appearance: Empty separator
271 Description: Removes any feedbackActive geometry created in the con‐
272 structor of the SoScaleUniformDragger.
273
274 .in 0n+.5i
275 Resource: jackTranslatorLineTranslator
276 .in 0n+.5i
277 Parts: translator.xTranslator.translator
278 translator.yTranslator.translator
279 translator.zTranslator.translator
280 Appearance: Skinny white cylinder aligned with axies of motion
281 Description: Picking these parts initiates dragging in the x, y, and
282 z linear draggers respectively.
283
284 .in 0n+.5i
285 Resource: jackTranslatorLineTranslatorActive
286 .in 0n+.5i
287 Parts: translator.xTranslator.translatorActive
288 translator.yTranslator.transla‐
289 torActive
290 translator.zTranslator.transla‐
291 torActive
292 Appearance: Skinny yellow cylinder aligned with axies of motion
293 Description: Shown during linear dragging in the x, y, and z direc‐
294 tions respectively.
295
296 .in 0n+.5i
297 Resource: jackTranslatorPlaneTranslator
298 .in 0n+.5i
299 Parts: translator.yzTranslator.translator
300 translator.xzTranslator.translator
301 translator.xyTranslator.translator
302 Appearance: White flattened cube, drawn in wireframe
303 Description: Picking these parts initiates dragging by the yz, xz,
304 and xy planar draggers respectively.
305
306 .in 0n+.5i
307 Resource: jackTranslatorPlaneTranslatorActive
308 .in 0n+.5i
309 Parts: translator.yzTranslator.translatorActive
310 translator.xzTranslator.transla‐
311 torActive
312 translator.xyTranslator.transla‐
313 torActive
314 Appearance: Yellow flattened cube, drawn in wireframe
315 Description: Shown during planar dragging in the yz, xz, and xy
316 planes respectively.
317
318 .in 0n+.5i
319 Resource: jackTranslatorXFeedback
320 .in 0n+.5i
321 Part: xFeedback
322 Appearance: Double-headed purple arrow
323 Description: Feedback for motion in x direction
324
325 .in 0n+.5i
326 Resource: jackTranslatorYFeedback
327 .in 0n+.5i
328 Part: yFeedback
329 Appearance: Double-headed purple arrow
330 Description: Feedback for motion in y direction
331
332 .in 0n+.5i
333 Resource: jackTranslatorZFeedback
334 .in 0n+.5i
335 Part: zFeedback
336 Appearance: Double-headed purple arrow
337 Description: Feedback for motion in z direction
338
339 .in 0n+.5i
340 Resource: jackTranslatorYZFeedback
341 .in 0n+.5i
342 Part: yzFeedback
343 Appearance: Semi-transparent green square in yz plane
344 Description: Feedback for motion in yz plane
345
346 .in 0n+.5i
347 Resource: jackTranslatorXZFeedback
348 .in 0n+.5i
349 Part: xzFeedback
350 Appearance: Semi-transparent green square in yz plane
351 Description: Feedback for motion in xz plane
352
353 .in 0n+.5i
354 Resource: jackTranslatorXYFeedback
355 .in 0n+.5i
356 Part: xyFeedback
357 Appearance: Semi-transparent green square in yz plane
358 Description: Feedback for motion in xy plane
359
360
362 JackDragger {
363 renderCaching AUTO
364 boundingBoxCaching AUTO
365 renderCulling AUTO
366 pickCulling AUTO
367 isActive FALSE
368 rotation 0 0 1 0
369 translation 0 0 0
370 scaleFactor 1 1 1
371 callbackList NULL
372 surroundScale NULL
373 antiSquish AntiSquish {
374 sizing BIGGEST_DIMENSION }
375
376 scaler ScaleUniformDragger {
377 }
378
379 rotator RotateSphericalDragger {
380 }
381
382 translator DragPointDragger {
383 }
384
385 rotator.rotator <jackRotatorRotator resource>
386 rotator.rotatorActive <jackRotatorRotatorActive resource>
387 rotator.feedback <jackRotatorFeedback resource>
388 rotator.feedbackActive <jackRotatorFeedbackActive resource>
389 scaler.scaler <jackScalerScaler resource>
390 scaler.scalerActive <jackScalerScalerActive resource>
391 scaler.feedback <jackScalerFeedback resource>
392 scaler.feedbackActive <jackScalerFeedbackActive resource>
393 translator.xTranslator.translator <jackTranslatorLineTranslator resource>
394 translator.yTranslator.translator <jackTranslatorLineTranslator resource>
395 translator.zTranslator.translator <jackTranslatorLineTranslator resource>
396 translator.xTranslator.translatorActive <jackTranslatorLineTranslatorActive resource>
397 translator.yTranslator.translatorActive <jackTranslatorLineTranslatorActive resource>
398 translator.zTranslator.translatorActive <jackTranslatorLineTranslatorActive resource>
399 translator.yzTranslator.translator <jackTranslatorPlaneTranslator resource>
400 translator.xzTranslator.translator <jackTranslatorPlaneTranslator resource>
401 translator.xyTranslator.translator <jackTranslatorPlaneTranslator resource>
402 translator.yzTranslator.translatorActive <jackTranslatorPlaneTranslatorActive resource>
403 translator.xzTranslator.translatorActive <jackTranslatorPlaneTranslatorActive resource>
404 translator.xyTranslator.translatorActive <jackTranslatorPlaneTranslatorActive resource>
405 xFeedback <jackTranslatorXFeedback resource>
406 yFeedback <jackTranslatorYFeedback resource>
407 zFeedback <jackTranslatorZFeedback resource>
408 yzFeedback <jackTranslatorYZFeedback resource>
409 xzFeedback <jackTranslatorXZFeedback resource>
410 xyFeedback <jackTranslatorXYFeedback resource>
411 }
412
414 SoInteractionKit, SoDragger, SoCenterballDragger, SoDirectionalLight‐
415 Dragger, SoDragPointDragger, SoHandleBoxDragger, SoPointLightDragger,
416 SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDrag‐
417 ger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScale‐
418 UniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger,
419 SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger,
420 SoTranslate1Dragger, SoTranslate2Dragger
421
422
423
424
425 SoJackDragger(3IV)()