1SoTransformBoxDragger(3IV)()                      SoTransformBoxDragger(3IV)()
2
3
4

NAME

6       SoTransformBoxDragger  —  box-like object you scale, rotate, and trans‐
7       late by dragging with the mouse
8

INHERITS FROM

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

SYNOPSIS

14       #include <Inventor/draggers/SoTransformBoxDragger.h>
15
16          Fields from class SoTransformBoxDragger:
17
18     SoSFRotation        rotation
19     SoSFVec3f           translation
20     SoSFVec3f           scaleFactor
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 SoTransformBoxDragger:
38
39                         SoTransformBoxDragger()
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

DESCRIPTION

131       SoTransformBoxDragger  is  a  composite  dragger shaped like a box with
132       small cubes at the corners. Click and drag any of these cubes to  scale
133       the box uniformly. Drag any edge of the box to rotate the whole dragger
134       about its center, along an axis parallel to that edge. Pick any face of
135       the box for 2D translation in the plane of that face.
136
137       Although the box looks just about like a wireframe cube, it is composed
138       of many different simple draggers arranged  in  a  composite  assembly.
139       When  one  part  is  dragged, the transformBox makes sure they all move
140       together. Each of the parts of the box is a different dragger with  the
141       default  geometry  changed.  The faces of the box are SoTranslate2Drag‐
142       gers, the edges are SoRotateCylindricalDraggers, and the cubes  are  an
143       SoScaleUniformDragger. Drag them and the dragger will update its trans‐
144       lation, rotation and scaleFactor fields to reflect the changes. As with
145       all  draggers,  if you change the fields the dragger will move to match
146       the new settings.
147
148       Remember: This is not an  SoTransform!.  If  you  want  to  move  other
149       objects with this dragger, you can either:
150
151       [a]  Use  an SoTransformBoxManip, which is subclassed from SoTransform.
152       It creates one of these draggers and uses it as the interface to change
153       its fields. (see the SoTransformBoxManip man page).
154
155       [b]  Use field-to-field connections to connect the fields of this drag‐
156       ger to those of any SoTransformation node.
157
158       You can change the parts in any instance of  this  dragger  using  set‐
159       Part().  The  default part geometries are defined as resources for this
160       SoTransformBoxDragger class. They are detailed in the Dragger Resources
161       section of the online reference page for this class.  You can make your
162       program use different default resources for the parts  by  copying  the
163       file  /usr/share/data/draggerDefaults/transformBoxDragger.iv  into your
164       own directory, editing the file, and then setting the environment vari‐
165       able SO_DRAGGER_DIR to be a path to that directory.
166

FIELDS

168     SoSFRotation        rotation
169          Orientation of the dragger.
170
171     SoSFVec3f           translation
172          Position of the dragger.
173
174     SoSFVec3f           scaleFactor
175          Scale of the dragger.
176
177

METHODS

179                         SoTransformBoxDragger()
180          Constructor.
181
182     static const SoNodekitCatalog *
183                         getClassNodekitCatalog() const
184          Returns an SoNodekitCatalog for this class
185
186     static SoType       getClassTypeId()
187          Returns type identifier for this class.
188
189

CATALOG PARTS

191       ┌──────────────────────────────────────────────────────────────────┐
192All parts                             
193NULL by 
194Part Name       Part Type                  Default Type   Default 
195       │                                                                  │
196       │callbackList    NodeKitListPart            --               yes   │
197       │surroundScale   SurroundScale              --               yes   │
198       │antiSquish      AntiSquish                 --               no    │
199       │scaler          ScaleUniformDragger        --               yes   │
200       │rotator1        RotateCylindricalDragger   --               yes   │
201       │rotator2        RotateCylindricalDragger   --               yes   │
202       │rotator3        RotateCylindricalDragger   --               yes   │
203       │translator1     Translate2Dragger          --               yes   │
204       │translator2     Translate2Dragger          --               yes   │
205       │translator3     Translate2Dragger          --               yes   │
206       │translator4     Translate2Dragger          --               yes   │
207       │translator5     Translate2Dragger          --               yes   │
208       │translator6     Translate2Dragger          --               yes   │
209       │                                                                  │
210       └──────────────────────────────────────────────────────────────────┘
211       ┌───────────────────────────────────────────────────────────────┐
212Extra information for list parts from above table        
213       │                                                               │
214Part Name      Container Type   Permissible Types              
215       │                                                               │
216       │callbackList   Separator        Callback, EventCallback        │
217       │                                                               │
218       └───────────────────────────────────────────────────────────────┘

DRAGGER RESOURCES

220       .in 0n+.5i
221     Resource:         transformBoxScalerScaler
222       .in 0n+.5i
223     Part:             scaler.scaler
224     Appearance:       Eight small white cubes at the corners of the box
225     Description:      Picking  this initiates uniform 3D scaling of the drag‐
226                         ger.
227
228                         .in 0n+.5i
229     Resource:         transformBoxScalerScalerActive
230                         .in 0n+.5i
231     Part:             scaler.scalerActive
232     Appearance:       Yellow version of the regular scaler part
233     Description:      Displayed while the dragger is being scaled.
234
235                         .in 0n+.5i
236     Resource:         transformBoxScalerFeedback
237                         .in 0n+.5i
238     Part:             scaler.feedback
239     Appearance:       Empty separator
240     Description:      Removes any feedback geometry created in the  construc‐
241                         tor of the SoScaleUniformDragger.
242
243                         .in 0n+.5i
244     Resource:         transformBoxScalerFeedbackActive
245                         .in 0n+.5i
246     Part:             scaler.feedbackActive
247     Appearance:       Empty separator
248     Description:      Removes any feedbackActive geometry created in the con‐
249                         structor of the SoScaleUniformDragger.
250
251                         .in 0n+.5i
252     Resource:         transformBoxRotatorRotator
253                         .in 0n+.5i
254     Parts:            rotator1.rotator
255                                           rotator2.rotator
256                                           rotator3.rotator
257     Appearance:       Four white lines along the edges of the box
258     Description:      Picking this begins rotational dragging. In each of the
259                         three  rotateCylindrical  draggers,  the lines of the
260                         rotator part are oriented parallel  to  the  axis  of
261                         rotation.
262
263                         .in 0n+.5i
264     Resource:         transformBoxRotatorRotatorActive
265                         .in 0n+.5i
266     Parts:            rotator1.rotatorActive
267                                           rotator2.rotatorActive
268                                           rotator3.rotatorActive
269     Appearance:       Four yellow lines along the edges of the box
270     Description:      Displayed while the dragger is being rotated
271
272                         .in 0n+.5i
273     Resource:         transformBoxRotatorFeedback
274                         .in 0n+.5i
275     Parts:            rotator1.feedback
276                                           rotator2.feedback
277                                           rotator3.feedback
278     Appearance:       Empty separator
279     Description:      Removes  any feedback geometry created in the construc‐
280                         tor of the SoRotateCylindricalDragger.
281
282                         .in 0n+.5i
283     Resource:         transformBoxRotatorFeedbackActive
284                         .in 0n+.5i
285     Parts:            rotator1.feedbackActive
286                                           rotator2.feedbackActive
287                                           rotator3.feedbackActive
288     Appearance:       Thin purple line through center of box
289     Description:      Displayed to show axis of  rotation  during  rotational
290                         dragging.
291
292                         .in 0n+.5i
293     Resource:         transformBoxTranslatorTranslator
294                         .in 0n+.5i
295     Parts:            translator1.translator
296                                           translator2.translator
297                                           translator3.translator
298                                           translator4.translator
299                                           translator5.translator
300                                           translator6.translator
301     Appearance:       Invisible but pickable square surface
302     Description:      Picking  these begins 2-D translational dragging within
303                         the plane of one of the sides of the box. The invisi‐
304                         ble   squares   of  the  six  translate2Draggers  are
305                         arranged to form the sides of the box.   The  squares
306                         are  easy to discern, although rendered as invisible;
307                         they are bounded by the lines of the rotational drag‐
308                         ger parts.
309
310                         .in 0n+.5i
311     Resource:         transformBoxTranslatorTranslatorActive
312                         .in 0n+.5i
313     Parts:            translator1.translatorActive
314                                           translator2.translatorActive
315                                           translator3.translatorActive
316                                           translator4.translatorActive
317                                           translator5.translatorActive
318                                           translator6.translatorActive
319     Appearance:       Invisible square surface
320     Description:      Shown during 2-D translational dragging.
321
322                         .in 0n+.5i
323     Resource:         transformBoxTranslatorXAxisFeedback
324                         .in 0n+.5i
325     Parts:            translator1.xAxisFeedback
326                                           translator2.xAxisFeedback
327                                           translator3.xAxisFeedback
328                                           translator4.xAxisFeedback
329                                           translator5.xAxisFeedback
330                                           translator6.xAxisFeedback
331     Appearance:       Short thin purple line
332     Description:      Only  shown if dragger is moving and the axis is a per‐
333                         missable direction of motion. When pressing  <shift>,
334                         motion  is constrained, and this is displayed only if
335                         the primary motion is in the X direction.
336
337                         .in 0n+.5i
338     Resource:         transformBoxTranslatorYAxisFeedback
339                         .in 0n+.5i
340     Parts:            translator1.yAxisFeedback
341                                           translator2.yAxisFeedback
342                                           translator3.yAxisFeedback
343                                           translator4.yAxisFeedback
344                                           translator5.yAxisFeedback
345                                           translator6.yAxisFeedback
346     Appearance:       Short thin purple line
347     Description:      Only shown if dragger is moving and the axis is a  per‐
348                         missable  direction of motion. When pressing <shift>,
349                         motion is constrained, and this is displayed only  if
350                         the primary motion is in the Y direction.
351
352

FILE FORMAT/DEFAULTS

354       TransformBoxDragger {
355          renderCaching                 AUTO
356          boundingBoxCaching            AUTO
357          renderCulling                 AUTO
358          pickCulling                   AUTO
359          isActive                      FALSE
360          rotation                      0 0 1  0
361          translation                   0 0 0
362          scaleFactor                   1 1 1
363          callbackList                  NULL
364          surroundScale                 NULL
365          antiSquish                    AntiSquish {
366              sizing BIGGEST_DIMENSION }
367
368          scaler                        ScaleUniformDragger {
369          }
370
371          rotator1                      RotateCylindricalDragger {
372          }
373
374          rotator2                      RotateCylindricalDragger {
375          }
376
377          rotator3                      RotateCylindricalDragger {
378          }
379
380          translator1                   Translate2Dragger {
381          }
382
383          translator2                   Translate2Dragger {
384          }
385
386          translator3                   Translate2Dragger {
387          }
388
389          translator4                   Translate2Dragger {
390          }
391
392          translator5                   Translate2Dragger {
393          }
394
395          translator6                   Translate2Dragger {
396          }
397
398          scaler.scaler                 <transformBoxScalerScaler resource>
399          scaler.scalerActive           <transformBoxScalerScalerActive resource>
400          scaler.feedback               <transformBoxScalerFeedback resource>
401          scaler.feedbackActive         <transformBoxScalerFeedbackActive resource>
402          rotator1.rotator              <transformBoxRotatorRotator resource>
403          rotator2.rotator              <transformBoxRotatorRotator resource>
404          rotator3.rotator              <transformBoxRotatorRotator resource>
405          rotator1.rotatorActive        <transformBoxRotatorRotatorActive resource>
406          rotator2.rotatorActive        <transformBoxRotatorRotatorActive resource>
407          rotator3.rotatorActive        <transformBoxRotatorRotatorActive resource>
408          rotator1.feedback             <transformBoxRotatorFeedback resource>
409          rotator2.feedback             <transformBoxRotatorFeedback resource>
410          rotator3.feedback             <transformBoxRotatorFeedback resource>
411          rotator1.feedbackActive       <transformBoxRotatorFeedbackActive resource>
412          rotator2.feedbackActive       <transformBoxRotatorFeedbackActive resource>
413          rotator3.feedbackActive       <transformBoxRotatorFeedbackActive resource>
414          translator1.translator        <transformBoxTranslatorTranslator resource>
415          translator2.translator        <transformBoxTranslatorTranslator resource>
416          translator3.translator        <transformBoxTranslatorTranslator resource>
417          translator4.translator        <transformBoxTranslatorTranslator resource>
418          translator5.translator        <transformBoxTranslatorTranslator resource>
419          translator6.translator        <transformBoxTranslatorTranslator resource>
420          translator1.translatorActive  <transformBoxTranslatorTranslatorActive resource>
421          translator2.translatorActive  <transformBoxTranslatorTranslatorActive resource>
422          translator3.translatorActive  <transformBoxTranslatorTranslatorActive resource>
423          translator4.translatorActive  <transformBoxTranslatorTranslatorActive resource>
424          translator5.translatorActive  <transformBoxTranslatorTranslatorActive resource>
425          translator6.translatorActive  <transformBoxTranslatorTranslatorActive resource>
426          translator1.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
427          translator2.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
428          translator3.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
429          translator4.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
430          translator5.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
431          translator6.xAxisFeedback     <transformBoxTranslatorXAxisFeedback resource>
432          translator1.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
433          translator2.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
434          translator3.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
435          translator4.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
436          translator5.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
437          translator6.yAxisFeedback     <transformBoxTranslatorYAxisFeedback resource>
438     }
439

SEE ALSO

441       SoInteractionKit,  SoDragger,  SoCenterballDragger, SoDirectionalLight‐
442       Dragger,   SoDragPointDragger,    SoHandleBoxDragger,    SoJackDragger,
443       SoPointLightDragger,  SoRotateCylindricalDragger,  SoRotateDiscDragger,
444       SoRotateSphericalDragger,       SoScale1Dragger,       SoScale2Dragger,
445       SoScale2UniformDragger,    SoScaleUniformDragger,   SoSpotLightDragger,
446       SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger,  SoTransformer‐
447       Dragger, SoTranslate1Dragger, SoTranslate2Dragger
448
449
450
451
452                                                  SoTransformBoxDragger(3IV)()
Impressum