'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoHandleBoxDragger(3IV) .SH NAME SoHandleBoxDragger \(em box you can scale, stretch and translate by dragging with the mouse .SH INHERITS FROM SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoHandleBoxDragger .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Fields from class SoHandleBoxDragger: .in 0.5i .sp .ta 20m .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 SoHandleBoxDragger: .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\ \} \*(CbSoHandleBoxDragger\*(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 \*(CbSoHandleBoxDragger\f1 is a dragger shaped like a wireframe box with small \f2corner cubes\f1 mounted on each corner. Click and drag any of these cubes to scale the box uniformly. Six other \f2center cubes\f1 are centered on the sides of the box; white lines \&connect them to the center of the dragger. Drag one of the center cubes along its line to stretch the box in that direction. Dragging a face of the box translates the dragger within that plane. .sp While \&you drag a face of the box, purple \f2feedback arrows\f1 display the possible directions of motion. Press the \*(Cr\f1 key to \f2constrain\f1 the motion to one of the two major directions in the plane. The constraint direction is chosen based on \&the next user gesture. Press the \*(Cr\f1 key and the dragger will translate \f2perpendicular\f1 to that plane. The \*(Cbtranslation\f1 field is modified as the face is dragged. .sp By default, dragging any of the small cubes scales about the center \&of the object. Pressing the \*(Cr\f1 key changes this: A corner cube will scale about its opposite corner. A center cube will scale about the center of its opposite face. Dragging one of the small cubes will \&usually result in changes to both the \*(CbscaleFactor\f1 and \*(Cbtranslation\f1 fields. This is because any scale about a point other than the origin has a translation element. .sp 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 \*(CbSoHandleBoxManip\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 \*(CbSoHandleBoxManip\f1 reference 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 \*(CbSoHandleBoxDragger\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/handleBoxDragger.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 \*(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\ \} \*(CbSoHandleBoxDragger\*(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 57 .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 translator1!Separator!--!yes translator1Active!Separator!--!yes translator2!Separator!--!yes translator2Active!Separator!--!yes translator3!Separator!--!yes translator3Active!Separator!--!yes translator4!Separator!--!yes translator4Active!Separator!--!yes translator5!Separator!--!yes translator5Active!Separator!--!yes translator6!Separator!--!yes translator6Active!Separator!--!yes extruder1!Separator!--!yes extruder1Active!Separator!--!yes extruder2!Separator!--!yes extruder2Active!Separator!--!yes extruder3!Separator!--!yes extruder3Active!Separator!--!yes extruder4!Separator!--!yes extruder4Active!Separator!--!yes extruder5!Separator!--!yes extruder5Active!Separator!--!yes extruder6!Separator!--!yes extruder6Active!Separator!--!yes uniform1!Separator!--!yes uniform1Active!Separator!--!yes uniform2!Separator!--!yes uniform2Active!Separator!--!yes uniform3!Separator!--!yes uniform3Active!Separator!--!yes uniform4!Separator!--!yes uniform4Active!Separator!--!yes uniform5!Separator!--!yes uniform5Active!Separator!--!yes uniform6!Separator!--!yes uniform6Active!Separator!--!yes uniform7!Separator!--!yes uniform7Active!Separator!--!yes uniform8!Separator!--!yes uniform8Active!Separator!--!yes arrow1!Separator!--!yes arrow2!Separator!--!yes arrow3!Separator!--!yes arrow4!Separator!--!yes arrow5!Separator!--!yes arrow6!Separator!--!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: \*(CbhandleBoxTranslator1 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator1 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Top face of handleBox. Picking this initiates scaling in x-z plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator2 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator2 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Bottom face of handleBox. Picking this initiates scaling in x-z plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator3 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator3 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Left face of handleBox. Picking this initiates scaling in y-z plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator4 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator4 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Right face of handleBox. Picking this initiates scaling in y-z plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator5 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator5 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Front face of handleBox. Picking this initiates scaling in x-y plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator6 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator6 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: White Line-Style Square .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Back face of handleBox. Picking this initiates scaling in x-y plane. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator1Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator1Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator1 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator1 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator2Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator2Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator2 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator2 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator3Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator3Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator3 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator3 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator4Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator4Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator4 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator4 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator5Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator5Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator5 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator5 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxTranslator6Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: translator6Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxTranslator6 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxTranslator6 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder1 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder1 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (0,1.25,0) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along Y axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder2 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder2 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (0,-1.25,0) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along Y axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder3 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder3 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (-1.25,0,0) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along X axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder4 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder4 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (1.25,0,0) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along X axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder5 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder5 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (0,0,1.25) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along Z axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder6 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder6 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube at (0,0,-1.25) with line to origin .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Selecting this part initiates 1-D scaling along Z axis. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder1Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder1Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder1 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder1 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder2Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder2Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder1 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder1 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder3Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder3Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder3 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder3 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder4Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder4Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder4 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder4 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder5Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder5Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder5 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder5 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxExtruder6Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: extruder6Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxExtruder6 .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxExtruder6 during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform1 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform1 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (+x+y+z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform2 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform2 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (+x+y-z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform3 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform3 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (+x-y+z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform4 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform4 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (+x-y-z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform5 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform5 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (-x+y+z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform6 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform6 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (-x+y-z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform7 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform7 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (-x-y+z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform8 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform8 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Small white cube in (-x-y-z) corner of handleBox .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Picking this initiates uniform scaling. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform1Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform1Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform2Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform2Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform3Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform3Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform4Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform4Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform5Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform5Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform6Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform6Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform7Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform7Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxUniform8Active .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: uniform8Active .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Yellow version of handleBoxUniform1Active .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Replaces handleBoxUniform1Active during dragging. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow1 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow1 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing up .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if Y direction is permitted. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow2 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow2 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing down .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if Y direction is permitted. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow3 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow3 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing left .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if X direction is permitted. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow4 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow4 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing right .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if X direction is permitted. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow5 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow5 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing forward .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if Z direction is permitted. .sp \f1.in 0n+.5i .ti 0n+.5i .ta 18m Resource: \*(CbhandleBoxArrow6 .br \f1.in 0n+.5i .ti 0n+.5i .ta 18m Part: arrow6 .br .in 0n+.5i .ti 0n+.5i .ta 18m Appearance: Purple Arrow, pointing backward .br .in 20n+.5i .ti 0n+.5i .ta 18m Description: Displayed when translating if Z direction is permitted. .sp .SH FILE FORMAT/DEFAULTS .nf \*(CrHandleBoxDragger { .in 1i .ta 20m renderCaching AUTO boundingBoxCaching AUTO renderCulling AUTO pickCulling AUTO isActive FALSE translation 0 0 0 scaleFactor 1 1 1 callbackList NULL surroundScale NULL translator1 translator1Active translator2 translator2Active translator3 translator3Active translator4 translator4Active translator5 translator5Active translator6 translator6Active extruder1 extruder1Active extruder2 extruder2Active extruder3 extruder3Active extruder4 extruder4Active extruder5 extruder5Active extruder6 extruder6Active uniform1 uniform1Active uniform2 uniform2Active uniform3 uniform3Active uniform4 uniform4Active uniform5 uniform5Active uniform6 uniform6Active uniform7 uniform7Active uniform8 uniform8Active arrow1 arrow2 arrow3 arrow4 arrow5 arrow6 .in 0.5i } .SH NOTE Unlike most multi-function draggers, \*(CbSoHandleBoxDragger\f1 is not a compound dragger made up of other draggers that perform its smaller tasks. This is not because it was inappropriate, but because was written before implementation \&of the methods that synchronize multiple child draggers. The younger \*(CbSoTransformBoxDragger\f1 has similarities to the handle box dragger, but the transform box dragger \f2is\f1 a compound dragger. .SH SEE ALSO \*(CbSoInteractionKit, SoDragger, SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, \&SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, \&SoTranslate1Dragger, SoTranslate2Dragger