1SoTabBoxDragger(3IV)() SoTabBoxDragger(3IV)()
2
3
4
6 SoTabBoxDragger — cubic object you can translate and scale by dragging
7 with the mouse
8
10 SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
11 SoDragger > SoTabBoxDragger
12
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
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
165 SoSFVec3f scaleFactor
166 Scale of the dragger.
167
168 SoSFVec3f translation
169 Position of the dragger.
170
171
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
192 ┌─────────────────────────────────────────────────────────┐
193 │ All parts │
194 │ NULL by │
195 │Part 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 ┌───────────────────────────────────────────────────────────────┐
209 │ Extra information for list parts from above table │
210 │ │
211 │Part Name Container Type Permissible Types │
212 │ │
213 │callbackList Separator Callback, EventCallback │
214 │ │
215 └───────────────────────────────────────────────────────────────┘
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
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
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)()