98#ifndef _SO_HANDLEBOX_DRAGGER_
99#define _SO_HANDLEBOX_DRAGGER_
340 { POSX, POSY, POSZ, NEGX, NEGY, NEGZ };
341 void highlightAxisForScale( WhichAxis axis );
346 RIT_X_SCALE, TOP_Y_SCALE, FNT_Z_SCALE,
347 LFT_X_SCALE, BOT_Y_SCALE, BAK_Z_SCALE,
349 PX_PY_PZ_3D_SCALE, PX_PY_NZ_3D_SCALE, PX_NY_PZ_3D_SCALE,
350 PX_NY_NZ_3D_SCALE, NX_PY_PZ_3D_SCALE, NX_PY_NZ_3D_SCALE,
351 NX_NY_PZ_3D_SCALE, NX_NY_NZ_3D_SCALE,
353 RIT_TRANSLATE, TOP_TRANSLATE, FNT_TRANSLATE,
354 LFT_TRANSLATE, BOT_TRANSLATE, BAK_TRANSLATE };
367 bool altDown, ctlDown, shftDown;
371 void setHighlights();
372 void setFeedbackArrows();
374 bool translateInit();
375 bool faceScaleInit();
376 bool uniformScaleInit();
377 bool scaleGeomSizeOnlyInit();
379 bool translateDrag();
381 bool scaleGeomSizeOnlyDrag();
384 static const unsigned char geomBuffer[];
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
#define SO_KIT_CATALOG_ENTRY_HEADER(partName)
This defines an SoSFNode field for the catalog part given.
#define SO_KIT_HEADER(className)
This is a dictionary mapping (size_t) integer keys to (void *) data pointers.
Base class for nodekits that move in response to click-drag-release mouse events.
Node that defines the style to use when rendering.
Sensor class that can be attached to Inventor fields.
Box you can scale, stretch and translate by dragging with the mouse.
virtual bool setUpConnections(bool onOff, bool doItAlways=FALSE)
detach/attach any sensors, callbacks, and/or field connections.
SoFieldSensor * translFieldSensor
static void initClass()
initialize the class
SoHandleBoxDragger()
Constructor.
static void valueChangedCB(void *, SoDragger *)
static void startCB(void *, SoDragger *)
Callbacks for drag start, motion, and finish.
SoFieldSensor * scaleFieldSensor
static void fieldSensorCB(void *, SoSensor *)
virtual ~SoHandleBoxDragger()
static void motionCB(void *, SoDragger *)
static void finishCB(void *, SoDragger *)
void dragStart()
These really do the work during startCB, motionCB, and finishCB.
static void metaKeyChangeCB(void *, SoDragger *)
Callbacks for pressing and releasing the meta keys.
virtual void setDefaultOnNonWritingFields()
Called by the SoBaseKit::write() method.
void setAllPartsActive(bool onOrOff)
Field containing a three-dimensional vector.
Abstract base class for Inventor sensors.