278 static void setMinScale(
float newMinScale ) { minScale = newMinScale; }
395 {
return pathToSurrogatePickOwner;}
399 {
return surrogateNameInPickOwner; }
405 {
return surrogatePathInPickOwner;}
429 {
return handleEventAction; }
482 const SbMatrix *conversion = NULL );
485 const SbMatrix *conversion = NULL );
488 const SbMatrix *conversion = NULL );
505 { projectorFrontSetting = newVal; }
507 {
return projectorFrontSetting;}
543 const SoPath *surrogatePath );
630 bool valueChangedCallbacksEnabled;
650 void setPickPath(
SoPath *newPickPath);
654 void setNoPickedSurrogate();
655 void setPickedSurrogate(
SoPath *pathToOwner,
SbName &nameUsedByOwner,
656 SoPath *pathUsedByOwner );
658 SbName surrogateNameInPickOwner;
659 SoPath *pathToSurrogatePickOwner;
660 SoPath *surrogatePathInPickOwner;
675 bool isTempPathToThisOk();
686 static float minScale;
697 void validateMatrices();
705 bool cachedPathToThisValid;
706 bool cachedMotionMatrixValid;
#define SoEXTENDER
Provide inline template functions for abs, swap, min, max, and clamp.
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
void INVENTOR_API SoDraggerCB(void *userData, SoDragger *dragger)
forward reference
#define SO_KIT_CATALOG_ENTRY_HEADER(partName)
This defines an SoSFNode field for the catalog part given.
#define SO_KIT_HEADER(className)
Character string stored in a hash table.
List of generic (void *) pointers.
Class for representing a rotation.
Class for representing a viewport.
Abstract base class for all actions.
Manages a list of callback functions and associated data.
Base class for nodekits that move in response to click-drag-release mouse events.
const SoEvent * getEvent() const
const SbViewVolume & getViewVolume()
Information about the window an event occurred in.
void setMinGesture(int pixels)
Set and get the number of pixels of movement required to initiate a constraint gesture.
static void childMotionCB(void *, SoDragger *)
void registerChildDragger(SoDragger *child)
Compound draggers should call this for each child dragger so that user callbacks (valueChanged,...
void getPartToLocalMatrix(const SbName &partName, SbMatrix &partToLocalMatrix, SbMatrix &localToPartMatrix)
Get the matrix which converts from the space of one part into local space.
virtual void saveStartParameters()
By default, saves the motionMatrix as the startMotionMatrix.
void removeMotionCallback(SoDraggerCB *f, void *userData=NULL)
Motion callbacks are called after each movement of the mouse during dragging.
void removeFinishCallback(SoDraggerCB *f, void *userData=NULL)
Finish callbacks are made after dragging ends and the dragger has stopped grabbing events.
static void childValueChangedCB(void *, SoDragger *)
static SbMatrix appendRotation(const SbMatrix &mtx, const SbRotation &rot, const SbVec3f &rotCenter, const SbMatrix *conversion=NULL)
void unregisterChildDraggerMovingIndependently(SoDragger *child)
void registerChildDraggerMovingIndependently(SoDragger *child)
These two routines tie the child to the parent, but WITHOUT the transferMotion callback.
virtual bool mouseButtonPressed(const SoEvent *ev)
This is called during handleEvent.
SoSFBool isActive
This field is a boolean that is TRUE when the mouse is down and we are dragging, FALSE otherwise.
virtual bool shouldGrabBasedOnSurrogate(const SoPath *pickPath, const SoPath *surrogatePath)
Given a pickPath and a surrogatePath, decides whether it should grab based on the surrogate.
void addOtherEventCallback(SoDraggerCB *f, void *userData=NULL)
In addition to the public callback functions, these callback functions can also be used by subclasses...
void setTempPathToThis(const SoPath *somethingClose)
A path leading to 'this.
void setHandleEventAction(SoHandleEventAction *newAction)
static void workValuesIntoTransform(SbMatrix &mtx, const SbVec3f *translationPtr, const SbRotation *rotationPtr, const SbVec3f *scaleFactorPtr, const SbRotation *scaleOrientationPtr, const SbVec3f *centerPtr)
Same as above, but values are given explicitly as pointers.
virtual void grabEventsCleanup()
SoSFBool enable
This field is a boolean that enables / disables interaction.
void setStartingPoint(const SoPickedPoint *newPoint)
Set the point where the drag begins.
SbVec3f getLocalStartingPoint()
Returns the starting point in local coordinates.
virtual void handleEvent(SoHandleEventAction *ha)
This is called during traversal by a HandleEventAction.
SbMatrix getLocalToWorldMatrix()
Get the matrix which converts from one dragger space to another.
bool isAdequateConstraintMotion()
Has the locater moved far enough from where it started to choose a constraint gesture.
bool enableValueChangedCallbacks(bool newVal)
You can temporarily disable a dragger's valueChangedCallbacks.
SoDragger * getActiveChildDragger() const
void setIgnoreInBbox(bool newVal)
Set/get whether the dragger should be ignored during bounding box calculations.
static void initClasses()
Initialize ALL Inventor detail classes.
const SbViewportRegion & getViewportRegion()
static void getTransformFast(SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scaleFactor, SbRotation &scaleOrientation, const SbVec3f ¢er)
Faster versions of getTransform() and factor() that take advantage of the case where there is no scal...
void addFinishCallback(SoDraggerCB *f, void *userData=NULL)
Finish callbacks are made after dragging ends and the dragger has stopped grabbing events.
ProjectorFrontSetting getFrontOnProjector() const
const SoPath * getSurrogatePartPickedOwner() const
Surrogate Pick Information.
void setActiveChildDragger(SoDragger *newChildDragger)
Called by the above child callbacks.
virtual void setDefaultOnNonWritingFields()
Called by the SoBaseKit::write() method.
SbVec2f getNormalizedLocaterPosition()
Get the last known position of the locator (mouse).
static void getTransformFast(SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scaleFactor, SbRotation &scaleOrientation)
virtual bool mouseButtonReleased(const SoEvent *ev)
This is called during handleEvent.
void transformMatrixLocalToWorld(const SbMatrix &fromMatrix, SbMatrix &toMatrix)
Transforms a given matrix from one space into another space.
const SbMatrix & getStartMotionMatrix()
Used to calculate motion relative to the dragger's position at the beginning of the dragging.
void transferMotion(SoDragger *child)
This should be called by every child dragger of a compound dragger as a result of compoundDragger->re...
void addStartCallback(SoDraggerCB *f, void *userData=NULL)
Start callbacks are made after the mouse button 1 goes down and the dragger determines that it has be...
void workFieldsIntoTransform(SbMatrix &mtx)
Changes only that part of the matrix for which this dragger has fields.
virtual void getBoundingBox(SoGetBoundingBoxAction *action)
Implements getBoundingBox action.
void setStartLocaterPosition(SbVec2s p)
The start locater position is automatically set when button 1 goes down over the dragger.
static SbMatrix appendScale(const SbMatrix &mtx, const SbVec3f &scale, const SbVec3f &scaleCenter, const SbMatrix *conversion=NULL)
SbVec2s getStartLocaterPosition() const
Get the position of the locater when dragging started.
void setViewportRegion(const SbViewportRegion ®)
void transformMatrixWorldToLocal(const SbMatrix &fromMatrix, SbMatrix &toMatrix)
void removeStartCallback(SoDraggerCB *f, void *userData=NULL)
SbVec2s getLocaterPosition()
void setStartingPoint(const SbVec3f &newPoint)
The SbVec3f version would usually be a point saved from the end of another gesture.
static SbMatrix appendTranslation(const SbMatrix &mtx, const SbVec3f &translation, const SbMatrix *conversion=NULL)
Appends the given motion to the end of 'mtx'.
void unregisterChildDragger(SoDragger *child)
void removeValueChangedCallback(SoDraggerCB *f, void *userData=NULL)
static void setMinScale(float newMinScale)
The smallest scale that any dragger will write.
const SoPath * getPickPath() const
Information that's good to have during a valueChanged callback.
SbMatrix getWorldToLocalMatrix()
void valueChanged()
Invokes the valueChangedCallbacks.
const SbName & getSurrogatePartPickedName() const
Name: Name of the surrogate part within the owners list.
void setMotionMatrix(const SbMatrix &newMatrix)
Set the motion matrix.
int getMinGesture() const
Set and get the number of pixels of movement required to initiate a constraint gesture.
const SoPath * getSurrogatePartPickedPath() const
SurrogatePath: The owner's surrogate path for this name.
void addMotionCallback(SoDraggerCB *f, void *userData=NULL)
Motion callbacks are called after each movement of the mouse during dragging.
void setViewVolume(const SbViewVolume &vol)
SoPath * createPathToThis()
Creates a new path leading to this dragger, if the last path given by setTempPathToThis() is still va...
SbVec3f getWorldStartingPoint()
Returns the starting point in world coordinates.
void addValueChangedCallback(SoDraggerCB *f, void *userData=NULL)
Value-changed callbacks are made after a dragger changes any of its fields.
static void childOtherEventCB(void *, SoDragger *)
static float getMinScale()
Get min scale.
void setFrontOnProjector(ProjectorFrontSetting newVal)
SoHandleEventAction * getHandleEventAction() const
Get the most recent handleEventAction.
static void childTransferMotionAndValueChangedCB(void *, SoDragger *)
Stubs used by compound draggers to get user callbacks from the child dragger.
void setCameraInfo(SoAction *action)
The dragger looks in this action to get information about the camera and the viewport.
static void childFinishCB(void *, SoDragger *)
static void childStartCB(void *, SoDragger *)
void transformMatrixToLocalSpace(const SbMatrix &fromMatrix, SbMatrix &toMatrix, const SbName &fromSpacePartName)
void removeOtherEventCallback(SoDraggerCB *f, void *userData=NULL)
const SbMatrix & getMotionMatrix()
Get the motion matrix.
virtual void grabEventsSetup()
Called when the dragger gains or loses status as "grabber" of events.
ProjectorFrontSetting
These control behavior of the rotational parts.
Base class for all events.
This SoEXTENDER class allows expert users to examine "hidden" children in paths.
Computes bounding box of a scene.
Allows nodes in a graph to receive input events.
Base class for all interaction nodekit classes.
Path that points to a list of hierarchical nodes.
Represents point on surface of picked object.
Field containing a single boolean value.
This class is internal to Inventor.