SoTabBoxDragger(3IV)NAMESoTabBoxDragger (SoTabBoxDrag) - cubic object you can translate and scale
by dragging with the mouse
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
SoDragger > SoTabBoxDraggerSYNOPSIS
#include <Inventor_c/draggers/SoTabBoxDragger.h>
typedef SoTabBoxDragger SoTabBoxDrag
Fields from class SoTabBoxDragger:
SoSFVec3f scaleFactor
SoSFVec3f translation
Fields from class SoDragger:
SoSFBool isActive
Fields from class SoInteractionKit:
SoSFEnum renderCaching
SoSFEnum boundingBoxCaching
SoSFEnum renderCulling
SoSFEnum pickCulling
Parts from class SoBaseKit:
(SoNodeKitListPart) callbackList
Functions from class SoTabBoxDragger:
SoTabBoxDragger * SoTabBoxDragCreate()
void SoTabBoxDragAdjustScaleTabSize(SoTabBoxDrag
*this)
const SoNodekitCatalog * SoTabBoxDragGetClassNkitCat()
SoType SoTabBoxDragGetClassTypeId()
Functions from class SoDragger:
void SoTabBoxDragAddStartCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragRemoveStartCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragAddMotionCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragRemoveMotionCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
Page 1SoTabBoxDragger(3IV)
void SoTabBoxDragAddFinishCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragRemoveFinishCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragAddValueChangedCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoTabBoxDragRemoveValueChangedCB(SoTabBoxDrag *this,
SoDraggerCB *f, void *userData = NULL)
SbBool SoTabBoxDragEnableValueChangedCBs(SoTabBoxDrag *this)
void SoTabBoxDragSetMinGesture(SoTabBoxDrag *this, int
pixels)
int SoTabBoxDragGetMinGesture(const SoTabBoxDrag *this)
void SoTabBoxDragSetMinScale(float newMinScale)
float SoTabBoxDragGetMinScale()
Functions from class SoInteractionKit:
SbBool SoTabBoxDragSetPartAsPath(SoTabBoxDrag *this, const
char *partName, SoPath *surrogatePath )
Functions from class SoBaseKit:
const SoNodekitCatalog * SoTabBoxDragGetCat(const SoTabBoxDrag *this)
SoNode * SoTabBoxDragGetPart(SoTabBoxDrag *this, const
char *partName, SbBool makeIfNeeded)
SbString SoTabBoxDragGetPartString(SoTabBoxDrag *this,
const SoBase *part)
SoNodeKitPath * SoTabBoxDragCreatePathToPart(SoTabBoxDrag
*this, const char *partName, SbBool
makeIfNeeded, const SoPath *pathToExtend =
NULL)
SbBool SoTabBoxDragSetPart(SoTabBoxDrag *this, const
char *partName, SoNode *newPart)
SbBool SoTabBoxDragSet(SoTabBoxDrag *this, char
*partName, char *parameters)
SbBool SoTabBoxDragSet2(SoTabBoxDrag *this, char
*nameValuePairs)
SbBool SoTabBoxDragIsSearchingChildren()
void SoTabBoxDragSetSearchingChildren(SbBool newVal)
Functions from class SoNode:
void SoTabBoxDragSetOverride(SoTabBoxDrag *this, SbBool
state)
SbBool SoTabBoxDragIsOverride(const SoTabBoxDrag *this)
SoNode * SoTabBoxDragCopy(const SoTabBoxDrag *this, SbBool
copyConnections = FALSE)
SbBool SoTabBoxDragAffectsState(const SoTabBoxDrag *this)
SoNode * SoTabBoxDragGetByName(const char *name)
int SoTabBoxDragGetByNameList(const char *name,
SoNodeList *list)
Page 2SoTabBoxDragger(3IV)
Functions from class SoFieldContainer:
void SoTabBoxDragSetToDflts(SoTabBoxDrag *this)
SbBool SoTabBoxDragHasDfltVals(const SoTabBoxDrag *this)
SbBool SoTabBoxDragFldsAreEq(const SoTabBoxDrag *this, const
SoFieldContainer *fc)
void SoTabBoxDragCopyFieldVals(SoTabBoxDrag *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
void SoTabBoxDragGet(SoTabBoxDrag *this, SbString
*fieldDataString)
int SoTabBoxDragGetFields(const SoTabBoxDrag *this,
SoFieldList *resultList)
SoField * SoTabBoxDragGetField(const SoTabBoxDrag *this, const
char *fieldName)
SbBool SoTabBoxDragGetFieldName(const SoTabBoxDrag *this,
const SoField *field, SbName *fieldName)
SbBool SoTabBoxDragIsNotifyEnabled(const SoTabBoxDrag *this)
SbBool SoTabBoxDragEnableNotify(SoTabBoxDrag *this, SbBool
flag)
Functions from class SoBase:
void SoTabBoxDragRef(SoTabBoxDrag *this)
void SoTabBoxDragUnref(const SoTabBoxDrag *this)
void SoTabBoxDragUnrefNoDelete(const SoTabBoxDrag *this)
void SoTabBoxDragTouch(SoTabBoxDrag *this)
SoType SoTabBoxDragGetTypeId(const SoTabBoxDrag *this)
SbBool SoTabBoxDragIsOfType(const SoTabBoxDrag *this, SoType
type)
void SoTabBoxDragSetName(SoTabBoxDrag *this, const char
*name)
SbName SoTabBoxDragGetName(const SoTabBoxDrag *this)
DESCRIPTIONSoTabBoxDragger is a composite dragger shaped like a box. Inside it are
six SoTabPlaneDraggers which the dragger positions and orients to form a
cube. The operations available in an SoTabPlaneDragger (translation, 1D
scaling and 2D scaling) are available on each face of the cube. Since
they each move in their local space, the dragger may be easily translated
or scaled in any direction.
As a composite dragger, this class makes sure that when one plane is
dragged, the entire box moves together.
As each sub-dragger is moved, the SoTabBoxDragger updates its scaleFactor
and translation fields. As with all draggers, if you change a field the
dragger will move to match the new settings.
Remember: This is not an SoTransform!. If you want to move other objects
with this dragger, you can either:
Page 3SoTabBoxDragger(3IV)
[a] Use an SoTabBoxManip, which is subclassed from SoTransform. It
creates one of these draggers and uses it as the interface to change its
fields. (see the SoTabBoxManip man page).
[b] Use field-to-field connections to connect the fields of this dragger
to those of any SoTransformation node.
You can change the parts in any instance of this dragger using
SoDraggerSetPart(). The default part geometries are defined as resources
for this SoTabBoxDragger class. They are detailed below in the Dragger
Resources section of the online reference page for this class. You can
make your program use different default resources for the parts by
copying the file /usr/share/data/draggerDefaults/tabBoxDragger.iv into
your own directory, editing the file, and then setting the environment
variable SO_DRAGGER_DIR to be a path to that directory.
FIELDS
SoSFVec3f scaleFactor
Scale of the dragger.
SoSFVec3f translation
Position of the dragger.
FUNCTIONSSoTabBoxDragger * SoTabBoxDragCreate()
Constructor.
void SoTabBoxDragAdjustScaleTabSize(SoTabBoxDrag
*this)
Cause the scale tab sizes to be re-adjusted on all 6
SoTabPlaneDraggers so that they remain a near constant screen space
size. This happens automatically upon dragger finish. Call this to
adjust the scale tab sizes at other times, for instance after the
camera has changed in a viewer finish callback.
const SoNodekitCatalog * SoTabBoxDragGetClassNkitCat()
Returns an SoNodekitCatalog for this class
SoType SoTabBoxDragGetClassTypeId()
Returns type identifier for this class.
CATALOG PARTSPage 4SoTabBoxDragger(3IV)
__________________________________________________________
All parts
NULL by
Part Name Part Type Default Type Default
callbackList NodeKitListPart -- yes
surroundScale SurroundScale -- yes
tabPlane1 TabPlaneDragger -- yes
tabPlane2 TabPlaneDragger -- yes
tabPlane3 TabPlaneDragger -- yes
tabPlane4 TabPlaneDragger -- yes
tabPlane5 TabPlaneDragger -- yes
tabPlane6 TabPlaneDragger -- yes
boxGeom Separator -- yes
__________________________________________________________
|
|
________________________________________________________________
Extra information for list parts from above table
Part Name Container Type Permissible Types
Callback, EventCallback
callbackList Separator
________________________________________________________________
|
|
DRAGGER RESOURCES
Resource: tabBoxTranslator
Parts: tabPlane1.translator
tabPlane2.translator
tabPlane3.translator
tabPlane4.translator
tabPlane5.translator
tabPlane6.translator
Appearance: Outline of a Square. The region within is pickable
Description: Begins translation within the plane. The tabBox places
and orients each tabPlane so that these squares form
a box.
Resource: tabBoxScaleTabMaterial
Parts: tabPlane1.scaleTabMaterial
tabPlane2.scaleTabMaterial
tabPlane3.scaleTabMaterial
tabPlane4.scaleTabMaterial
tabPlane5.scaleTabMaterial
tabPlane6.scaleTabMaterial
Appearance: Green - half diffuse, half emissive.
Description: Used as material for scaling tabs.
Resource: tabBoxScaleTabHints
Parts: tabPlane1.scaleTabHints
tabPlane2.scaleTabHints
tabPlane3.scaleTabHints
tabPlane4.scaleTabHints
tabPlane5.scaleTabHints
Page 5SoTabBoxDragger(3IV)
tabPlane6.scaleTabHints
Appearance: shapeHints node:COUNTERCLOCKWISE/SOLID/CONVEX
Description: Property for the tab nodes.
Resource: tabBoxBoxGeom
Part: boxGeom
Appearance: Unpickable grey outline of a box.
Description: Just feedback..
FILE FORMAT/DEFAULTS
TabBoxDragger {
renderCaching AUTO
boundingBoxCaching AUTO
renderCulling AUTO
pickCulling AUTO
isActive FALSE
translation 0 0 0
scaleFactor 1 1 1
callbackList NULL
surroundScale NULL
tabPlane1 TabPlaneDragger {
}
tabPlane2 TabPlaneDragger {
}
tabPlane3 TabPlaneDragger {
}
tabPlane4 TabPlaneDragger {
}
tabPlane5 TabPlaneDragger {
}
tabPlane6 TabPlaneDragger {
}
boxGeom <tabBoxBoxGeom resource>
tabPlane1.translator <tabBoxTranslator resource>
tabPlane2.translator <tabBoxTranslator resource>
tabPlane3.translator <tabBoxTranslator resource>
tabPlane4.translator <tabBoxTranslator resource>
tabPlane5.translator <tabBoxTranslator resource>
tabPlane6.translator <tabBoxTranslator resource>
tabPlane1.scaleTabMaterial <tabBoxScaleTabMaterial resource>
tabPlane2.scaleTabMaterial <tabBoxScaleTabMaterial resource>
tabPlane3.scaleTabMaterial <tabBoxScaleTabMaterial resource>
tabPlane4.scaleTabMaterial <tabBoxScaleTabMaterial resource>
tabPlane5.scaleTabMaterial <tabBoxScaleTabMaterial resource>
tabPlane6.scaleTabMaterial <tabBoxScaleTabMaterial resource>
Page 6SoTabBoxDragger(3IV)
tabPlane1.scaleTabHints <tabBoxScaleTabHints resource>
tabPlane2.scaleTabHints <tabBoxScaleTabHints resource>
tabPlane3.scaleTabHints <tabBoxScaleTabHints resource>
tabPlane4.scaleTabHints <tabBoxScaleTabHints resource>
tabPlane5.scaleTabHints <tabBoxScaleTabHints resource>
tabPlane6.scaleTabHints <tabBoxScaleTabHints resource>
}
SEE ALSO
SoInteractionKit, SoDragger, SoCenterballDragger,
SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger,
SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger,
SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger,
SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger,
SoSpotLightDragger, SoTabPlaneDragger, SoTrackballDragger,
SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger,
SoTranslate2Dragger
Page 7