1SoTabBoxDragger(3IV)()                                  SoTabBoxDragger(3IV)()
2
3
4

NAME

6       SoTabBoxDragger  — cubic object you can translate and scale by dragging
7       with the mouse
8

INHERITS FROM

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

SYNOPSIS

14       #include <Inventor/draggers/SoTabBoxDragger.h>
15
16          Fields from class SoTabBoxDragger:
17
18     SoSFVec3f           scaleFactor
19     SoSFVec3f           translation
20
21          Fields from class SoDragger:
22
23     SoSFBool            isActive
24
25          Fields from class SoInteractionKit:
26
27     SoSFEnum            renderCaching
28     SoSFEnum            boundingBoxCaching
29     SoSFEnum            renderCulling
30     SoSFEnum            pickCulling
31
32          Parts from class SoBaseKit:
33
34     (SoNodeKitListPart)  callbackList
35
36          Methods from class SoTabBoxDragger:
37
38                         SoTabBoxDragger()
39     void                adjustScaleTabSize()
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       SoTabBoxDragger is a composite dragger shaped like a box. Inside it are
132       six SoTabPlaneDraggers which the dragger positions and orients to  form
133       a  cube. The operations available in an SoTabPlaneDragger (translation,
134       1D scaling and 2D scaling) are available on  each  face  of  the  cube.
135       Since  they  each  move in their local space, the dragger may be easily
136       translated or scaled in any direction.
137
138       As a composite dragger, this class makes sure that when  one  plane  is
139       dragged, the entire box moves together.
140
141       As each sub-dragger is moved, the SoTabBoxDragger updates its scaleFac‐
142       tor and translation fields. As with all draggers, if you change a field
143       the dragger will move to match the new settings.
144
145       Remember:  This  is  not  an  SoTransform!.  If  you want to move other
146       objects with this dragger, you can either:
147
148       [a] Use an SoTabBoxManip, which is subclassed from SoTransform. It cre‐
149       ates  one  of these draggers and uses it as the interface to change its
150       fields.  (see the SoTabBoxManip man page).
151
152       [b] Use field-to-field connections to connect the fields of this  drag‐
153       ger to those of any SoTransformation node.
154
155       You  can  change  the  parts in any instance of this dragger using set‐
156       Part(). The default part geometries are defined as resources  for  this
157       SoTabBoxDragger class. They are detailed below in the Dragger Resources
158       section of the online reference page for this class. You can make  your
159       program  use  different  default resources for the parts by copying the
160       file  /usr/share/data/draggerDefaults/tabBoxDragger.iv  into  your  own
161       directory,  editing the file, and then setting the environment variable
162       SO_DRAGGER_DIR to be a path to that directory.
163

FIELDS

165     SoSFVec3f           scaleFactor
166          Scale of the dragger.
167
168     SoSFVec3f           translation
169          Position of the dragger.
170
171

METHODS

173                         SoTabBoxDragger()
174          Constructor.
175
176     void                adjustScaleTabSize()
177          Cause the scale tab sizes to be re-adjusted on all 6 SoTabPlaneDrag‐
178          gers  so  that  they  remain a near constant screen space size. This
179          happens automatically upon dragger finish. Call this to  adjust  the
180          scale  tab  sizes  at other times, for instance after the camera has
181          changed in a viewer finish callback.
182
183     static const SoNodekitCatalog *
184                         getClassNodekitCatalog() const
185          Returns an SoNodekitCatalog for this class
186
187     static SoType       getClassTypeId()
188          Returns type identifier for this class.
189
190

CATALOG PARTS

192       ┌─────────────────────────────────────────────────────────┐
193All parts                         
194NULL by 
195Part Name       Part Type         Default Type   Default 
196       │                                                         │
197       │callbackList    NodeKitListPart   --               yes   │
198       │surroundScale   SurroundScale     --               yes   │
199       │tabPlane1       TabPlaneDragger   --               yes   │
200       │tabPlane2       TabPlaneDragger   --               yes   │
201       │tabPlane3       TabPlaneDragger   --               yes   │
202       │tabPlane4       TabPlaneDragger   --               yes   │
203       │tabPlane5       TabPlaneDragger   --               yes   │
204       │tabPlane6       TabPlaneDragger   --               yes   │
205       │boxGeom         Separator         --               yes   │
206       │                                                         │
207       └─────────────────────────────────────────────────────────┘
208       ┌───────────────────────────────────────────────────────────────┐
209Extra information for list parts from above table        
210       │                                                               │
211Part Name      Container Type   Permissible Types              
212       │                                                               │
213       │callbackList   Separator        Callback, EventCallback        │
214       │                                                               │
215       └───────────────────────────────────────────────────────────────┘

DRAGGER RESOURCES

217       .in 0n+.5i
218     Resource:         tabBoxTranslator
219       .in 0n+.5i
220     Parts:            tabPlane1.translator
221                         tabPlane2.translator
222                         tabPlane3.translator
223                         tabPlane4.translator
224                         tabPlane5.translator
225                         tabPlane6.translator
226     Appearance:       Outline of a Square. The region within is pickable
227     Description:      Begins translation within the plane. The tabBox  places
228                         and  orients each tabPlane so that these squares form
229                         a box.
230
231                         .in 0n+.5i
232     Resource:         tabBoxScaleTabMaterial
233                         .in 0n+.5i
234     Parts:            tabPlane1.scaleTabMaterial
235                                           tabPlane2.scaleTabMaterial
236                                           tabPlane3.scaleTabMaterial
237                                           tabPlane4.scaleTabMaterial
238                                           tabPlane5.scaleTabMaterial
239                                           tabPlane6.scaleTabMaterial
240     Appearance:       Green - half diffuse, half emissive.
241     Description:      Used as material for scaling tabs.
242
243                         .in 0n+.5i
244     Resource:         tabBoxScaleTabHints
245                         .in 0n+.5i
246     Parts:            tabPlane1.scaleTabHints
247                                           tabPlane2.scaleTabHints
248                                           tabPlane3.scaleTabHints
249                                           tabPlane4.scaleTabHints
250                                           tabPlane5.scaleTabHints
251                                           tabPlane6.scaleTabHints
252     Appearance:       shapeHints node:COUNTERCLOCKWISE/SOLID/CONVEX
253     Description:      Property for the tab nodes.
254
255                         .in 0n+.5i
256     Resource:         tabBoxBoxGeom
257                         .in 0n+.5i
258     Part:             boxGeom
259     Appearance:       Unpickable grey outline of a box.
260     Description:      Just feedback..
261
262

FILE FORMAT/DEFAULTS

264       TabBoxDragger {
265          renderCaching               AUTO
266          boundingBoxCaching          AUTO
267          renderCulling               AUTO
268          pickCulling                 AUTO
269          isActive                    FALSE
270          translation                 0 0 0
271          scaleFactor                 1 1 1
272          callbackList                NULL
273          surroundScale               NULL
274          tabPlane1                   TabPlaneDragger {
275          }
276
277          tabPlane2                   TabPlaneDragger {
278          }
279
280          tabPlane3                   TabPlaneDragger {
281          }
282
283          tabPlane4                   TabPlaneDragger {
284          }
285
286          tabPlane5                   TabPlaneDragger {
287          }
288
289          tabPlane6                   TabPlaneDragger {
290          }
291
292          boxGeom                     <tabBoxBoxGeom resource>
293          tabPlane1.translator        <tabBoxTranslator resource>
294          tabPlane2.translator        <tabBoxTranslator resource>
295          tabPlane3.translator        <tabBoxTranslator resource>
296          tabPlane4.translator        <tabBoxTranslator resource>
297          tabPlane5.translator        <tabBoxTranslator resource>
298          tabPlane6.translator        <tabBoxTranslator resource>
299          tabPlane1.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
300          tabPlane2.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
301          tabPlane3.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
302          tabPlane4.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
303          tabPlane5.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
304          tabPlane6.scaleTabMaterial  <tabBoxScaleTabMaterial resource>
305          tabPlane1.scaleTabHints     <tabBoxScaleTabHints resource>
306          tabPlane2.scaleTabHints     <tabBoxScaleTabHints resource>
307          tabPlane3.scaleTabHints     <tabBoxScaleTabHints resource>
308          tabPlane4.scaleTabHints     <tabBoxScaleTabHints resource>
309          tabPlane5.scaleTabHints     <tabBoxScaleTabHints resource>
310          tabPlane6.scaleTabHints     <tabBoxScaleTabHints resource>
311     }
312

SEE ALSO

314       SoInteractionKit, SoDragger,  SoCenterballDragger,  SoDirectionalLight‐
315       Dragger,    SoDragPointDragger,    SoHandleBoxDragger,   SoJackDragger,
316       SoPointLightDragger,  SoRotateCylindricalDragger,  SoRotateDiscDragger,
317       SoRotateSphericalDragger,       SoScale1Dragger,       SoScale2Dragger,
318       SoScale2UniformDragger,   SoScaleUniformDragger,    SoSpotLightDragger,
319       SoTabPlaneDragger,  SoTrackballDragger, SoTransformBoxDragger, SoTrans‐
320       formerDragger, SoTranslate1Dragger, SoTranslate2Dragger
321
322
323
324
325                                                        SoTabBoxDragger(3IV)()
Impressum