82#ifndef _SO_TRACKBALL_DRAGGER_
83#define _SO_TRACKBALL_DRAGGER_
324 void initSphereProjectorInternal(
SbVec3f center,
float radius,
SbVec3f startWorkSpaceHitPt,
SbMatrix workingSpace);
327 void initStripeProjectorInternal(
SbLine axis,
float radius,
SbVec3f startWorkSpaceHitPt,
SbMatrix workingSpace);
329 void setHighlights();
333 bool userStripeDrag();
336 static const unsigned char geomBuffer[];
339 bool animationEnabled;
346 int firstIndex, lastIndex;
352 static void spinSensorCB(
void *,
SoSensor *);
354 void resetSpinStuff();
360 bool wasSpinningAtDragStart;
#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 representing projectors.
Class for representing a rotation.
Class for representation of a time.
Sensor class that can be attached to Inventor fields.
Base class for all group nodes.
Node representing a 3D rotation about an arbitrary axis.
Field containing a rotation.
Field containing a three-dimensional vector.
Abstract base class for Inventor sensors.
Sensor that triggers callback repeatedly at regular intervals.
virtual SbProjector * initStripeProjector(SbLine axis, float radius, SbVec3f startWorkSpaceHitPt, SbMatrix workingSpace)
Setup the projector at start of constrained rotation.
static void valueChangedCB(void *, SoDragger *)
SoFieldSensor * scaleFieldSensor
virtual void setAllPartsActive(bool onOrOff)
void dragStart()
These really do the work during startCB, motionCB, and finishCB.
SoFieldSensor * rotFieldSensor
bool shftDown
keep track of meta keys
virtual ~SoTrackballDragger()
SoTrackballDragger()
Constructor.
void setAnimationEnabled(bool newVal)
If the mouse is moving while you release it, the trackball will continue to spin afterwards.
static void startCB(void *, SoDragger *)
Callbacks for drag start, motion, and finish.
SbCylinderProjector * stripeProj
static void fieldSensorCB(void *, SoSensor *)
SbSphereProjector * sphereProj
Moved variables from private to protected.
static void finishCB(void *, SoDragger *)
virtual bool setUpConnections(bool onOff, bool doItAlways=FALSE)
detach/attach any sensors, callbacks, and/or field connections.
static void metaKeyChangeCB(void *, SoDragger *)
Callback for pressing and releasing the meta keys.
static void initClass()
initialize the class
virtual void initDragState()
Determines the State based on the current pick path.
virtual SbProjector * initSphereProjector(SbVec3f center, float radius, SbVec3f startWorkSpaceHitPt, SbMatrix workingSpace)
Setup the projector at start of free rotation.
bool isAnimationEnabled()
static void motionCB(void *, SoDragger *)
virtual void setDefaultOnNonWritingFields()
Called by the SoBaseKit::write() method.
virtual void getSphereDeltaRotation(SbRotation &deltaRot, SbVec3f &newHitPt, SbVec3f prevHitPt, SbMatrix workingSpace)
Compute newHitPt and derive the delta rotation based on prevHitPt and newHitPt.
virtual void getStripeDeltaRotation(SbRotation &deltaRot, SbVec3f &newHitPt, SbVec3f prevHitPt, SbMatrix workingSpace)
Compute newHitPt and derive the delta rotation based on prevHitPt and newHitPt.