1SoDragPointDragger(3IV)()                            SoDragPointDragger(3IV)()
2
3
4

NAME

6       SoDragPointDragger  —  object  you can translate in 3D by dragging with
7       the mouse
8

INHERITS FROM

10       SoBase > SoFieldContainer > SoNode >  SoBaseKit  >  SoInteractionKit  >
11       SoDragger > SoDragPointDragger
12

SYNOPSIS

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

DESCRIPTION

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

FIELDS

187     SoSFVec3f           translation
188          Position of the dragger.
189
190

METHODS

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

CATALOG PARTS

217       ┌──────────────────────────────────────────────────────────┐
218All parts                         
219NULL by 
220Part 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       ┌───────────────────────────────────────────────────────────────┐
238Extra information for list parts from above table        
239       │                                                               │
240Part Name      Container Type   Permissible Types              
241       │                                                               │
242       │callbackList   Separator        Callback, EventCallback        │
243       │                                                               │
244       └───────────────────────────────────────────────────────────────┘

DRAGGER RESOURCES

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

FILE FORMAT/DEFAULTS

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

SEE ALSO

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)()
Impressum