'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoJackDragger(3IV) .SH NAME SoJackDragger \(em jack-shaped object you rotate, translate, or scale by dragging with the mouse .SH INHERITS FROM SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoJackDragger .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Fields from class SoJackDragger: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFRotation .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbrotation .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbscaleFactor .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbtranslation .sp .in 1i \f1Fields from class SoDragger: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisActive .sp .in 1i \f1Fields from class SoInteractionKit: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbrenderCaching .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbboundingBoxCaching .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbrenderCulling .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbpickCulling .sp .in 1i \f1Parts from class SoBaseKit: .in 0.5i .sp .ta 21m .in 1i+21n .ti 0.5i .ta 21m .ds Pt \*(Cr(SoNodeKitListPart) .ie \w'\*(Pt'>=21n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbcallbackList\*(Cr .sp .in 1i \f1Methods from class SoJackDragger: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoJackDragger\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic const SoNodekitCatalog * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassNodekitCatalog\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .sp .in 1i \f1Methods from class SoDragger: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaddStartCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbremoveStartCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaddMotionCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbremoveMotionCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaddFinishCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbremoveFinishCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaddValueChangedCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbremoveValueChangedCallback\*(Cr(SoDraggerCB *f, void *userData = NULL) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbenableValueChangedCallbacks\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetMinGesture\*(Cr(int pixels) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetMinGesture\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetMinScale\*(Cr(float newMinScale) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic float .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetMinScale\*(Cr() .sp .in 1i \f1Methods from class SoInteractionKit: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetPartAsPath\*(Cr(const SbName &partName, SoPath *surrogatePath ) .sp .in 1i \f1Methods from class SoBaseKit: .in 0.5i .sp .ta 25m .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crvirtual const SoNodekitCatalog * .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNodekitCatalog\*(Cr() const .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crvirtual SoNode * .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPart\*(Cr(const SbName &partName, SbBool makeIfNeeded) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(CrSbString .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPartString\*(Cr(const SoBase *part) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crvirtual SoNodeKitPath * .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbcreatePathToPart\*(Cr(const SbName &partName, SbBool makeIfNeeded, const SoPath *pathToExtend = NULL) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crvirtual SbBool .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetPart\*(Cr(const SbName &partName, SoNode *newPart) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbset\*(Cr(char *partName, char *parameters) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbset\*(Cr(char *nameValuePairs) .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crstatic SbBool .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisSearchingChildren\*(Cr() .br .in 1i+25n .ti 0.5i .ta 25m .ds Pt \*(Crstatic void .ie \w'\*(Pt'>=25n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetSearchingChildren\*(Cr(SbBool newVal) .sp .in 1i \f1Methods from class SoNode: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetOverride\*(Cr(SbBool state) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOverride\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoNode * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbcopy\*(Cr(SbBool copyConnections = FALSE) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaffectsState\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoNode * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetByName\*(Cr(const SbName &name) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic int .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetByName\*(Cr(const SbName &name, SoNodeList &list) .sp .in 1i \f1Methods from class SoFieldContainer: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetToDefaults\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbhasDefaultValues\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbfieldsAreEqual\*(Cr(const SoFieldContainer *fc) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbcopyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbget\*(Cr(SbString &fieldDataString) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual int .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetFields\*(Cr(SoFieldList &resultList) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoField * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetField\*(Cr(const SbName &fieldName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetFieldName\*(Cr(const SoField *field, SbName &fieldName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNotifyEnabled\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbenableNotify\*(Cr(SbBool flag) .sp .in 1i \f1Methods from class SoBase: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbref\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbunref\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbunrefNoDelete\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbtouch\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTypeId\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOfType\*(Cr(SoType type) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetName\*(Cr(const SbName &name) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbName .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetName\*(Cr() const .sp .in 1i \f1Macros from class SoBaseKit: .in 0.5i .sp \*(CbSO_GET_PART\*(Cr(kit, partName, partClass) .br \*(CbSO_CHECK_PART\*(Cr(kit, partName, partClass) .sp .SH DESCRIPTION \*(CbSoJackDragger\f1 is a composite dragger in the shape of a jack from the children's game jacks. Three lines along the x, y, and z axes form the central star shape, which you can drag with the mouse to rotate the jack. \&Dragging any of the small cubes mounted at the end of the axes will scale the jack uniformly in all 3 dimensions. At the core of the jack is an \*(CbSoDragPointDragger\f1 for translating the jack. .sp Each of these shapes is a different \&dragger with the default geometry changed. All of them are parts of the jack dragger, which keeps them moving together. The star is an \*(CbSoRotateSphericalDragger\f1, and dragging it updates the \*(Cbrotation\f1 field of the jack dragger. The small \&cubes are an \*(CbSoScaleUniformDragger\f1, tied to the \*(CbscaleFactor\f1 field. The position of the \*(CbSoDragPointDragger\f1 is given by the \*(Cbtranslation\f1 field. As with all draggers, if you change the fields the dragger will move to match the new settings. .sp \f2Remember:\f1 This is \f2not\f1 an \*(CbSoTransform!\f1. If you \&want to move other objects with this dragger, you can either: .sp [a] Use an \*(CbSoJackManip\f1, which is subclassed from \*(CbSoTransform\f1. It creates one of these draggers and uses it as the interface to change its fields. (see the \*(CbSoJackManip\f1 man \&page). .sp [b] Use field-to-field connections to connect the fields of this dragger to those of any \*(CbSoTransformation\f1 node. .sp You can change the parts in any instance of this dragger using \*(CbsetPart()\f1. The default part geometries are \&defined as resources for this \*(CbSoJackDragger\f1 class. They are detailed 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 \*(Cb/usr/share/data/draggerDefaults/jackDragger.iv\f1 into your own directory, editing the file, and then setting the environment variable \*(CbSO_DRAGGER_DIR\f1 to be a path to that directory. .SH FIELDS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFRotation .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbrotation .br .in 1i \f1Orientation of the dragger. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbscaleFactor .br .in 1i \f1Scale of the dragger. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbtranslation .br .in 1i \f1Position of the dragger. .sp .in 0.5i .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoJackDragger\*(Cr() .br .in 1i \f1Constructor. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic const SoNodekitCatalog * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassNodekitCatalog\*(Cr() const .br .in 1i \f1Returns an \*(CbSoNodekitCatalog\f1 for this class .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .br .in 1i \f1Returns type identifier for this class. .sp .in 0.5i .SH CATALOG PARTS .ne 15 .TS box, tab(!); cb s s s lb lb lb lb lb lb lb lb l l l c. All parts !!!NULL by Part Name!Part Type!Default Type!Default callbackList!NodeKitListPart!--!yes surroundScale!SurroundScale!--!yes antiSquish!AntiSquish!--!no scaler!ScaleUniformDragger!--!yes rotator!RotateSphericalDragger!--!yes translator!DragPointDragger!--!yes .TE .ne 10 .TS box, tab(!); cb s s lb lb lbw(30n) l l l. Extra information for list parts from above table .sp Part Name!Container Type!Permissible Types callbackList!Separator!T{ Callback, EventCallback T} .TE .SH DRAGGER RESOURCES .ta 20m \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackRotatorRotator .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: rotator.rotator .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: The 'star' of the jack. Set of 3 white axes (lines) .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking star begins rotational dragging of the jackDragger. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackRotatorRotatorActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: rotator.rotatorActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of the rotator.rotator part. .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed while the jackDragger is being rotated .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackRotatorFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: rotator.feedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Empty separator .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Removes any feedback geometry created in the constructor of the \*(CbSoRotateSphericalDragger\f1. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackRotatorFeedbackActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: rotator.feedbackActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Empty separator .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Removes any feedbackActive geometry created in the constructor of the \*(CbSoRotateSphericalDragger\f1. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackScalerScaler .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: scaler.scaler .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Six small white cubes, the tips of the rotator star .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform 3D scaling of the dragger. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackScalerScalerActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: scaler.scalerActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of the scaler.scaler resource. .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed while the dragger is being scaled. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackScalerFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: scaler.feedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Empty separator .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Removes any feedback geometry created in the constructor of the \*(CbSoScaleUniformDragger\f1. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackScalerFeedbackActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: scaler.feedbackActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Empty separator .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Removes any feedbackActive geometry created in the constructor of the \*(CbSoScaleUniformDragger\f1. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorLineTranslator .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Parts: translator.xTranslator.translator .br translator.yTranslator.translator .br translator.zTranslator.translator .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Skinny white cylinder aligned with axies of motion .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking these parts initiates dragging in the x, y, and z linear draggers respectively. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorLineTranslatorActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Parts: translator.xTranslator.translatorActive .br translator.yTranslator.translatorActive .br translator.zTranslator.translatorActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Skinny yellow cylinder aligned with axies of motion .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Shown during linear dragging in the x, y, and z directions respectively. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorPlaneTranslator .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Parts: translator.yzTranslator.translator .br translator.xzTranslator.translator .br translator.xyTranslator.translator .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White flattened cube, drawn in wireframe .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking these parts initiates dragging by the yz, xz, and xy planar draggers respectively. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorPlaneTranslatorActive .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Parts: translator.yzTranslator.translatorActive .br translator.xzTranslator.translatorActive .br translator.xyTranslator.translatorActive .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow flattened cube, drawn in wireframe .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Shown during planar dragging in the yz, xz, and xy planes respectively. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorXFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: xFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Double-headed purple arrow .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in x direction .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorYFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: yFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Double-headed purple arrow .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in y direction .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorZFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: zFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Double-headed purple arrow .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in z direction .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorYZFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: yzFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Semi-transparent green square in yz plane .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in yz plane .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorXZFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: xzFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Semi-transparent green square in yz plane .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in xz plane .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbjackTranslatorXYFeedback .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: xyFeedback .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Semi-transparent green square in yz plane .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Feedback for motion in xy plane .sp .SH FILE FORMAT/DEFAULTS .nf \*(CrJackDragger { .in 1i .ta 42m renderCaching AUTO boundingBoxCaching AUTO renderCulling AUTO pickCulling AUTO isActive FALSE rotation 0 0 1 0 translation 0 0 0 scaleFactor 1 1 1 callbackList NULL surroundScale NULL antiSquish AntiSquish { sizing BIGGEST_DIMENSION } scaler ScaleUniformDragger { } rotator RotateSphericalDragger { } translator DragPointDragger { } rotator.rotator rotator.rotatorActive rotator.feedback rotator.feedbackActive scaler.scaler scaler.scalerActive scaler.feedback scaler.feedbackActive translator.xTranslator.translator translator.yTranslator.translator translator.zTranslator.translator translator.xTranslator.translatorActive translator.yTranslator.translatorActive translator.zTranslator.translatorActive translator.yzTranslator.translator translator.xzTranslator.translator translator.xyTranslator.translator translator.yzTranslator.translatorActive translator.xzTranslator.translatorActive translator.xyTranslator.translatorActive xFeedback yFeedback zFeedback yzFeedback xzFeedback xyFeedback .in 0.5i } .SH SEE ALSO \*(CbSoInteractionKit, SoDragger, SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, \&SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, \&SoTranslate1Dragger, SoTranslate2Dragger