table of contents
other sections
| SoCenterballDragger(3IV)() | SoCenterballDragger(3IV)() |
NAME¶
SoCenterballDragger — striped ball you rotate and re-center by dragging with the mouseINHERITS FROM¶
SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoCenterballDraggerSYNOPSIS¶
#include <Inventor/draggers/SoCenterballDragger.h>Fields from class SoCenterballDragger:
SoSFRotation rotation
SoSFVec3f center
Fields from class SoDragger:
SoSFBool isActive
Fields from class SoInteractionKit:
SoSFEnum renderCaching
SoSFEnum boundingBoxCaching
SoSFEnum renderCulling
SoSFEnum pickCulling
Parts from class SoBaseKit:
(SoNodeKitListPart) callbackList
Methods from class SoCenterballDragger:
SoCenterballDragger()
static const SoNodekitCatalog * getClassNodekitCatalog () const
static SoType getClassTypeId()
Methods from class SoDragger:
void addStartCallback(SoDraggerCB *f, void *userData = NULL)
void removeStartCallback(SoDraggerCB *f, void *userData = NULL)
void addMotionCallback(SoDraggerCB *f, void *userData = NULL)
void removeMotionCallback(SoDraggerCB *f, void *userData = NULL)
void addFinishCallback(SoDraggerCB *f, void *userData = NULL)
void removeFinishCallback(SoDraggerCB *f, void *userData = NULL)
void addValueChangedCallback(SoDraggerCB *f, void *userData = NULL)
void removeValueChangedCallback(SoDraggerCB *f, void *userData = NULL)
SbBool enableValueChangedCallbacks()
void setMinGesture(int pixels)
int getMinGesture() const
static void setMinScale(float newMinScale)
static float getMinScale()
Methods from class SoInteractionKit:
virtual SbBool setPartAsPath(const SbName &partName, SoPath *surrogatePath )
Methods from class SoBaseKit:
virtual const SoNodekitCatalog * getNodekitCatalog() const
virtual SoNode * getPart(const SbName &partName, SbBool makeIfNeeded)
SbString getPartString(const SoBase *part)
virtual SoNodeKitPath * createPathToPart(const SbName &partName, SbBool makeIfNeeded, const SoPath *pathToExtend = NULL)
virtual SbBool setPart(const SbName &partName, SoNode *newPart)
SbBool set(char *partName, char *parameters)
SbBool set(char *nameValuePairs)
static SbBool isSearchingChildren()
static void setSearchingChildren(SbBool newVal)
Methods from class SoNode:
void setOverride(SbBool state)
SbBool isOverride() const
SoNode * copy(SbBool copyConnections = FALSE) const
virtual SbBool affectsState() const
static SoNode * getByName(const SbName &name)
static int getByName(const SbName &name, SoNodeList &list)
Methods from class SoFieldContainer:
void setToDefaults()
SbBool hasDefaultValues() const
SbBool fieldsAreEqual(const SoFieldContainer *fc) const
void copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
void get(SbString &fieldDataString)
virtual int getFields(SoFieldList &resultList) const
virtual SoField * getField(const SbName &fieldName) const
SbBool getFieldName(const SoField *field, SbName &fieldName) const
SbBool isNotifyEnabled() const
SbBool enableNotify(SbBool flag)
Methods from class SoBase:
void ref()
void unref() const
void unrefNoDelete() const
void touch()
virtual SoType getTypeId() const
SbBool isOfType(SoType type) const
virtual void setName(const SbName &name)
virtual SbName getName() const
Macros from class SoBaseKit:
DESCRIPTION¶
SoCenterballDragger is a composite dragger. Its shape is a sphere defined by three intersecting circles. Where the circles intersect (at the ends of the x, y and z axes) there are sets of small green crosshairs. Dragging a pair of crosshairs translates the entire centerball within the plane of the crosshairs. The interface of the sphere and circles is just like SoTrackballDragger. Dragging a circle rotates about a constrained axis and dragging the areas between them rotates the sphere freely about the center. An invisible but pickable sphere initiates the free-rotation dragging.FIELDS¶
SoSFRotation rotation
Orientation of the centerball dragger.
SoSFVec3f center
Center of rotation and scale of the centerball dragger.
METHODS¶
SoCenterballDragger()
Constructor.
static const SoNodekitCatalog * getClassNodekitCatalog () const
Returns an SoNodekitCatalog for this class.
static SoType getClassTypeId()
Returns type identifier for this class.
CATALOG PARTS¶
| All parts | |||
| NULL by | |||
| Part Name | Part Type | Default Type | Default |
| callbackList | NodeKitListPart | -- | yes |
| translateToCenter | MatrixTransform | -- | yes |
| surroundScale | SurroundScale | -- | yes |
| antiSquish | AntiSquish | -- | no |
| lightModel | LightModel | -- | yes |
| XAxis | Separator | -- | yes |
| YAxis | Separator | -- | yes |
| ZAxis | Separator | -- | yes |
| rotator | RotateSphericalDragger | -- | yes |
| YRotator | RotateCylindricalDragger | -- | yes |
| ZCenterChanger | Translate2Dragger | -- | yes |
| ZRotator | RotateCylindricalDragger | -- | yes |
| YCenterChanger | Translate2Dragger | -- | yes |
| XCenterChanger | Translate2Dragger | -- | yes |
| XRotator | RotateCylindricalDragger | -- | yes |
| Extra information for list parts from above table | ||
| Part Name | Container Type | Permissible Types |
| callbackList | Separator | Callback, EventCallback |
DRAGGER RESOURCES¶
.in 0n+.5i Resource: centerballRotatorAppearance: Invisible but pickable sphere
Description: When picked, initiates free rotation about the center point. Slightly smaller radius than the stripes, so you must pick between the stripes to use it.
Appearance: Invisible sphere
Description: Displayed during unconstrained 3D rotation instead of centerballRotator.
Appearance: White circle aligned with rotation axis.
Description: When picked, initiates constrained rotation. Each rotator rotates locally about its Y axis. The centerball contains private transform parts that orient the draggers along three different axes.
Appearance: White circle aligned with the rotation axis.
Description: Displayed during constrained rotation instead of the rotator part. The centerball orients the draggers along three different axes.
Appearance: Two sets of small green crosshairs, one located at each intersection of axis and ball.
Description: When picked, initiates 2D translation of ball through space. Edits the center field, which becomes center for subsequent rotations. Each translator works locally in its X-Y plane. The centerball contains private transform parts that place the draggers along three different axes.
Appearance: Yellow version of centerballCenterChanger.
Description: Displayed during 2D translation instead of regular translator part. The centerball places the draggers along three different axes.
Appearance: Double-headed purple arrows, one located at each intersection of axis and ball. Located atop X axis of crosshair.
Description: Only shown if dragger is moving and the axis is a permitted direction of motion. When pressing <shift>, motion is constrained, and this is displayed only if the primary motion is in the X direction of the child dragger's local space. The centerball places the draggers along three different axes; so not all of these parts aligns with the X axis in centerball space.
Appearance: Double-headed purple arrows, one located at each intersection of axis and ball. Located atop Y axis of crosshair.
Description: Only shown if dragger is moving and the axis is a permitted direction of motion. When pressing <shift>, motion is constrained, and this is displayed only if the primary motion is in the Y direction of the child dragger's local space. The centerball places the draggers along three different axes; so not all of these parts aligns with the Y axis in centerball space.
Appearance: Thin yellow line connecting left and right crosshairs.
Description: Feedback shown alone during rotation about X axis; displayed with centerballYAxis and centerballZAxis while center is dragged.
Appearance: Thin yellow line connecting lower and upper crosshairs.
Description: Feedback shown alone during rotation about Y axis; displayed with centerballXAxis and centerballZAxis while center is dragged.
Appearance: Thin yellow line connecting near and far crosshairs.
Description: Feedback shown alone during rotation about Z axis; displayed with centerballXAxis and centerballYAxis while center is dragged.
FILE FORMAT/DEFAULTS¶
CenterballDragger {
renderCaching AUTO
boundingBoxCaching AUTO
renderCulling AUTO
pickCulling AUTO
isActive FALSE
rotation 0 0 1 0
center 0 0 0
callbackList NULL
translateToCenter MatrixTransform {
matrix 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 }
surroundScale NULL
antiSquish AntiSquish {
sizing LONGEST_DIAGONAL }
lightModel LightModel {
model PHONG }
XAxis <centerballXAxis resource>
YAxis <centerballYAxis resource>
ZAxis <centerballZAxis resource>
rotator RotateSphericalDragger {
}
YRotator RotateCylindricalDragger {
}
ZCenterChanger Translate2Dragger {
}
ZRotator RotateCylindricalDragger {
}
YCenterChanger Translate2Dragger {
}
XCenterChanger Translate2Dragger {
}
XRotator RotateCylindricalDragger {
}
rotator.rotator <centerballRotator resource>
rotator.rotatorActive <centerballRotatorActive resource>
XRotator.rotator <centerballStripe resource>
YRotator.rotator <centerballStripe resource>
ZRotator.rotator <centerballStripe resource>
XRotator.rotatorActive <centerballStripeActive resource>
YRotator.rotatorActive <centerballStripeActive resource>
ZRotator.rotatorActive <centerballStripeActive resource>
XCenterChanger.translator <centerballCenterChanger resource>
YCenterChanger.translator <centerballCenterChanger resource>
ZCenterChanger.translator <centerballCenterChanger resource>
XCenterChanger.translatorActive <centerballCenterChangerActive resource>
YCenterChanger.translatorActive <centerballCenterChangerActive resource>
ZCenterChanger.translatorActive <centerballCenterChangerActive resource>
XCenterChanger.xAxisFeedback <centerballCenterXAxisFeedback resource>
YCenterChanger.xAxisFeedback <centerballCenterXAxisFeedback resource>
ZCenterChanger.xAxisFeedback <centerballCenterXAxisFeedback resource>
XCenterChanger.yAxisFeedback <centerballCenterYAxisFeedback resource>
YCenterChanger.yAxisFeedback <centerballCenterYAxisFeedback resource>
ZCenterChanger.yAxisFeedback <centerballCenterYAxisFeedback resource>
}