1SoDragPointDragger(3IV)() SoDragPointDragger(3IV)()
2
3
4
6 SoDragPointDragger — object you can translate in 3D by dragging with
7 the mouse
8
10 SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
11 SoDragger > SoDragPointDragger
12
14 #include <Inventor/draggers/SoDragPointDragger.h>
15
16 Fields from class SoDragPointDragger:
17
18 SoSFVec3f translation
19
20 Fields from class SoDragger:
21
22 SoSFBool isActive
23
24 Fields from class SoInteractionKit:
25
26 SoSFEnum renderCaching
27 SoSFEnum boundingBoxCaching
28 SoSFEnum renderCulling
29 SoSFEnum pickCulling
30
31 Parts from class SoBaseKit:
32
33 (SoNodeKitListPart) callbackList
34
35 Methods from class SoDragPointDragger:
36
37 SoDragPointDragger()
38 void setJumpLimit(float limit)
39 float getJumpLimit() const
40 void showNextDraggerSet()
41 static const SoNodekitCatalog *
42 getClassNodekitCatalog() const
43 static SoType getClassTypeId()
44
45 Methods from class SoDragger:
46
47 void addStartCallback(SoDraggerCB *f, void *userData =
48 NULL)
49 void removeStartCallback(SoDraggerCB *f, void *userData =
50 NULL)
51 void addMotionCallback(SoDraggerCB *f, void *userData =
52 NULL)
53 void removeMotionCallback(SoDraggerCB *f, void *userData =
54 NULL)
55 void addFinishCallback(SoDraggerCB *f, void *userData =
56 NULL)
57 void removeFinishCallback(SoDraggerCB *f, void *userData =
58 NULL)
59 void addValueChangedCallback(SoDraggerCB *f, void *user‐
60 Data = NULL)
61 void removeValueChangedCallback(SoDraggerCB *f, void
62 *userData = NULL)
63 SbBool enableValueChangedCallbacks()
64 void setMinGesture(int pixels)
65 int getMinGesture() const
66 static void setMinScale(float newMinScale)
67 static float getMinScale()
68
69 Methods from class SoInteractionKit:
70
71 virtual SbBool setPartAsPath(const SbName &partName, SoPath *surro‐
72 gatePath )
73
74 Methods from class SoBaseKit:
75
76 virtual const SoNodekitCatalog *
77 getNodekitCatalog() const
78 virtual SoNode * getPart(const SbName &partName, SbBool
79 makeIfNeeded)
80 SbString getPartString(const SoBase *part)
81 virtual SoNodeKitPath * createPathToPart(const SbName &partName, SbBool
82 makeIfNeeded, const SoPath *pathToExtend =
83 NULL)
84 virtual SbBool setPart(const SbName &partName, SoNode *newPart)
85 SbBool set(char *partName, char *parameters)
86 SbBool set(char *nameValuePairs)
87 static SbBool isSearchingChildren()
88 static void setSearchingChildren(SbBool newVal)
89
90 Methods from class SoNode:
91
92 void setOverride(SbBool state)
93 SbBool isOverride() const
94 SoNode * copy(SbBool copyConnections = FALSE) const
95 virtual SbBool affectsState() const
96 static SoNode * getByName(const SbName &name)
97 static int getByName(const SbName &name, SoNodeList &list)
98
99 Methods from class SoFieldContainer:
100
101 void setToDefaults()
102 SbBool hasDefaultValues() const
103 SbBool fieldsAreEqual(const SoFieldContainer *fc) const
104 void copyFieldValues(const SoFieldContainer *fc, SbBool
105 copyConnections = FALSE)
106 void get(SbString &fieldDataString)
107 virtual int getFields(SoFieldList &resultList) const
108 virtual SoField * getField(const SbName &fieldName) const
109 SbBool getFieldName(const SoField *field, SbName &fieldName)
110 const
111 SbBool isNotifyEnabled() const
112 SbBool enableNotify(SbBool flag)
113
114 Methods from class SoBase:
115
116 void ref()
117 void unref() const
118 void unrefNoDelete() const
119 void touch()
120 virtual SoType getTypeId() const
121 SbBool isOfType(SoType type) const
122 virtual void setName(const SbName &name)
123 virtual SbName getName() const
124
125 Macros from class SoBaseKit:
126
127 SO_GET_PART(kit, partName, partClass)
128 SO_CHECK_PART(kit, partName, partClass)
129
130
132 SoDragPointDragger is a compound dragger that translates in all three
133 dimensions when dragged with the mouse.
134
135 It is made up of six smaller draggers, which it displays two at a time.
136 Each pair has one plane dragger and one line dragger. The line dragger
137 is oriented perpendicular to the plane, so together the plane/line pair
138 lets you move through all of 3-space.
139
140 DragPoint has a total of three such pairs, oriented along the x, y, and
141 z axes of its local space. You can cycle through the three pairs by
142 hitting the <Control> key with the cursor over the dragger. (You need
143 not press the mouse button.)
144
145 The line draggers are SoTranslate1Draggers and the plane draggers are
146 SoTranslate2Draggers. So you can use the <Shift> key to constrain the
147 motion of a plane dragger along one of the two axes within the plane,
148 as described in the SoTranslate2Draggers man page.
149
150 DragPoint adds extra feedback parts to provide a more intuitive idea of
151 where you are placed in three-space. There are three feedback planes
152 and three feedback axes; each corresponds to one of the plane or line
153 draggers, but spans a much greater distance. When you drag along a
154 line, that line's larger feedback axis is displayed, and remains
155 anchored in space while the dragger slides along it. This helps estab‐
156 lish the motion of the dragger relative to the rest of the scene. Simi‐
157 larly, when you drag within a plane, the larger (but transparent) feed‐
158 back plane establishes a ground plane for you to move upon. The loca‐
159 tion of the dragger within the plane is pinpointed by two intersecting
160 axes that always cross below the cursor and extend to the edges of the
161 plane. When you move dragPoint to the edge of the feedback plane (or
162 line), the feedback will jump to a new location in that direction, so
163 that the dragger never leaves the feedback behind.
164
165 The primary directions of motion are given by the local space of the
166 dragger. Transforms earlier in the scene will affect the dragger, its
167 children, and the orientation of its directions of motion.
168
169 This node has a translation field which always reflects its position in
170 local space. Setting the field moves the dragger to that point. You can
171 also connect fields of other nodes or engines from this one to make
172 them follow the dragger's motion.
173
174 Although the child draggers each have their own resources defining
175 default part geometries, the dragPoint dragger overrides these with a
176 new set of resources. It also defines resources for the feedback parts
177 that it adds. These are detailed in the Dragger Resources section of
178 the online reference page for this class. You can change the parts in
179 any instance of this dragger using setPart().
180
181 You can make your program use different default resources for the parts
182 by copying the file /usr/share/data/draggerDefaults/dragPointDragger.iv
183 into your own directory, editing the file, and then setting the envi‐
184 ronment variable SO_DRAGGER_DIR to be a path to that directory.
185
187 SoSFVec3f translation
188 Position of the dragger.
189
190
192 SoDragPointDragger()
193 Constructor.
194
195 void setJumpLimit(float limit)
196 float getJumpLimit() const
197 Set and get the point at which the feedback axes will jump to a new
198 position. For example, if set to .1 (the default), the feedback axes
199 will jump when the dragger gets within 10% of the end of the axis.
200
201 void showNextDraggerSet()
202 The dragPoint dragger contains three pairs of draggers, each con‐
203 taining a plane dragger and a line dragger (see the Description
204 above). The dragger starts with the (y-line/xz-plane) pair dis‐
205 played. Calling this method will cycle next through the (z-line/xy-
206 plane), then the (x-line/yz-plane).
207
208 static const SoNodekitCatalog *
209 getClassNodekitCatalog() const
210 Returns an SoNodekitCatalog for this class
211
212 static SoType getClassTypeId()
213 Returns type identifier for this class.
214
215
217 ┌──────────────────────────────────────────────────────────┐
218 │ All parts │
219 │ NULL by │
220 │Part Name Part Type Default Type Default │
221 │ │
222 │callbackList NodeKitListPart -- yes │
223 │xTranslator Translate1Dragger -- yes │
224 │xyTranslator Translate2Dragger -- yes │
225 │xzTranslator Translate2Dragger -- yes │
226 │zTranslator Translate1Dragger -- yes │
227 │yzTranslator Translate2Dragger -- yes │
228 │yTranslator Translate1Dragger -- yes │
229 │xFeedback Separator -- yes │
230 │yFeedback Separator -- yes │
231 │zFeedback Separator -- yes │
232 │yzFeedback Separator -- yes │
233 │xzFeedback Separator -- yes │
234 │xyFeedback Separator -- yes │
235 │ │
236 └──────────────────────────────────────────────────────────┘
237 ┌───────────────────────────────────────────────────────────────┐
238 │ Extra information for list parts from above table │
239 │ │
240 │Part Name Container Type Permissible Types │
241 │ │
242 │callbackList Separator Callback, EventCallback │
243 │ │
244 └───────────────────────────────────────────────────────────────┘
246 .in 0n+.5i
247 Resource: dragPointXTranslatorTranslator
248 .in 0n+.5i
249 Part: xTranslator.translator
250 Appearance: white cylinder with axis aligned in X direction
251 Description: picking this initiates linear motion in X direction
252
253 .in 0n+.5i
254 Resource: dragPointXTranslatorTranslatorActive
255 .in 0n+.5i
256 Part: xTranslator.translatorActive
257 Appearance: yellow cylinder with axis aligned in X direction
258 Description: shown when moving in X direction
259
260 .in 0n+.5i
261 Resource: dragPointYTranslatorTranslator
262 .in 0n+.5i
263 Part: yTranslator.translator
264 Appearance: white cylinder with axis aligned in Y direction
265 Description: picking this initiates linear motion in Y direction
266
267 .in 0n+.5i
268 Resource: dragPointYTranslatorTranslatorActive
269 .in 0n+.5i
270 Part: yTranslator.translatorActive
271 Appearance: yellow cylinder with axis aligned in Y direction
272 Description: shown when moving in Y direction
273
274 .in 0n+.5i
275 Resource: dragPointZTranslatorTranslator
276 .in 0n+.5i
277 Part: zTranslator.translator
278 Appearance: white cylinder with axis aligned in Z direction
279 Description: picking this initiates linear motion in Z direction
280
281 .in 0n+.5i
282 Resource: dragPointZTranslatorTranslatorActive
283 .in 0n+.5i
284 Part: zTranslator.translatorActive
285 Appearance: yellow cylinder with axis aligned in Z direction
286 Description: shown when moving in Z direction
287
288 .in 0n+.5i
289 Resource: dragPointYZTranslatorTranslator
290 .in 0n+.5i
291 Part: yzTranslator.translator
292 Appearance: white flattened cube within the yz plane of motion
293 Description: picking this initiates planar motion in yz plane
294
295 .in 0n+.5i
296 Resource: dragPointYZTranslatorTranslatorActive
297 .in 0n+.5i
298 Part: yzTranslator.translatorActive
299 Appearance: yellow flattened cube within the yz plane of motion
300 Description: shown when moving in yz plane
301
302 .in 0n+.5i
303 Resource: dragPointXZTranslatorTranslator
304 .in 0n+.5i
305 Part: xzTranslator.translator
306 Appearance: white flattened cube within the xz plane of motion
307 Description: picking this initiates planar motion in xz plane
308
309 .in 0n+.5i
310 Resource: dragPointXZTranslatorTranslatorActive
311 .in 0n+.5i
312 Part: xzTranslator.translatorActive
313 Appearance: yellow flattened cube within the xz plane of motion
314 Description: shown when moving in xz plane
315
316 .in 0n+.5i
317 Resource: dragPointXYTranslatorTranslator
318 .in 0n+.5i
319 Part: xyTranslator.translator
320 Appearance: white flattened cube within the xy plane of motion
321 Description: picking this initiates planar motion in xy plane
322
323 .in 0n+.5i
324 Resource: dragPointXYTranslatorTranslatorActive
325 .in 0n+.5i
326 Part: xyTranslator.translatorActive
327 Appearance: yellow flattened cube within the xy plane of motion
328 Description: shown when moving in xy plane
329
330 .in 0n+.5i
331 Resource: dragPointXFeedback
332 .in 0n+.5i
333 Part: xFeedback
334 Appearance: douple-headed purple arrow
335 Description: feedback for motion in x direction
336
337 .in 0n+.5i
338 Resource: dragPointYFeedback
339 .in 0n+.5i
340 Part: yFeedback
341 Appearance: douple-headed purple arrow
342 Description: feedback for motion in y direction
343
344 .in 0n+.5i
345 Resource: dragPointZFeedback
346 .in 0n+.5i
347 Part: zFeedback
348 Appearance: douple-headed purple arrow
349 Description: feedback for motion in z direction
350
351 .in 0n+.5i
352 Resource: dragPointYZFeedback
353 .in 0n+.5i
354 Part: yzFeedback
355 Appearance: semi-transparent green square in yz plane
356 Description: feedback for motion in yz plane
357
358 .in 0n+.5i
359 Resource: dragPointXZFeedback
360 .in 0n+.5i
361 Part: xzFeedback
362 Appearance: semi-transparent green square in yz plane
363 Description: feedback for motion in xz plane
364
365 .in 0n+.5i
366 Resource: dragPointXYFeedback
367 .in 0n+.5i
368 Part: xyFeedback
369 Appearance: semi-transparent green square in yz plane
370 Description: feedback for motion in xy plane
371
372
374 DragPointDragger {
375 renderCaching AUTO
376 boundingBoxCaching AUTO
377 renderCulling AUTO
378 pickCulling AUTO
379 isActive FALSE
380 translation 0 0 0
381 callbackList NULL
382 xTranslator Translate1Dragger {
383 }
384
385 xyTranslator Translate2Dragger {
386 }
387
388 xzTranslator Translate2Dragger {
389 }
390
391 zTranslator Translate1Dragger {
392 }
393
394 yzTranslator Translate2Dragger {
395 }
396
397 yTranslator Translate1Dragger {
398 }
399
400 xFeedback <dragPointXFeedback resource>
401 yFeedback <dragPointYFeedback resource>
402 zFeedback <dragPointZFeedback resource>
403 yzFeedback <dragPointYZFeedback resource>
404 xzFeedback <dragPointXZFeedback resource>
405 xyFeedback <dragPointXYFeedback resource>
406 xTranslator.translator <dragPointXTranslatorTranslator resource>
407 xTranslator.translatorActive <dragPointXTranslatorTranslatorActive resource>
408 yTranslator.translator <dragPointYTranslatorTranslator resource>
409 yTranslator.translatorActive <dragPointYTranslatorTranslatorActive resource>
410 zTranslator.translator <dragPointZTranslatorTranslator resource>
411 zTranslator.translatorActive <dragPointZTranslatorTranslatorActive resource>
412 yzTranslator.translator <dragPointYZTranslatorTranslator resource>
413 yzTranslator.translatorActive <dragPointYZTranslatorTranslatorActive resource>
414 xzTranslator.translator <dragPointXZTranslatorTranslator resource>
415 xzTranslator.translatorActive <dragPointXZTranslatorTranslatorActive resource>
416 xyTranslator.translator <dragPointXYTranslatorTranslator resource>
417 xyTranslator.translatorActive <dragPointXYTranslatorTranslatorActive resource>
418 }
419
421 SoInteractionKit, SoDragger, SoCenterballDragger, SoDragPointDragger,
422 SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylin‐
423 dricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger,
424 SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUni‐
425 formDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger,
426 SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger,
427 SoTranslate1Dragger, SoTranslate2Dragger
428
429
430
431
432 SoDragPointDragger(3IV)()