#include <Inventor/draggers/SoDragger.h>
Inheritance diagram for SoDragger::
Public Types | |
enum | ProjectorFrontSetting { FRONT, BACK, USE_PICK } |
Public Methods | |
virtual void | callback (SoCallbackAction *action) |
virtual void | GLRender (SoGLRenderAction *action) |
virtual void | getMatrix (SoGetMatrixAction *action) |
virtual void | rayPick (SoRayPickAction *action) |
virtual void | search (SoSearchAction *action) |
virtual void | write (SoWriteAction *action) |
virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
void | addStartCallback (SoDraggerCB *func, void *data=NULL) |
void | removeStartCallback (SoDraggerCB *func, void *data=NULL) |
void | addMotionCallback (SoDraggerCB *func, void *data=NULL) |
void | removeMotionCallback (SoDraggerCB *func, void *data=NULL) |
void | addFinishCallback (SoDraggerCB *func, void *data=NULL) |
void | removeFinishCallback (SoDraggerCB *func, void *data=NULL) |
void | addValueChangedCallback (SoDraggerCB *func, void *data=NULL) |
void | removeValueChangedCallback (SoDraggerCB *func, void *data=NULL) |
void | setMinGesture (int pixels) |
int | getMinGesture (void) const |
SbBool | enableValueChangedCallbacks (SbBool newval) |
const SbMatrix & | getMotionMatrix (void) |
void | addOtherEventCallback (SoDraggerCB *func, void *data=NULL) |
void | removeOtherEventCallback (SoDraggerCB *func, void *data=NULL) |
void | registerChildDragger (SoDragger *child) |
void | unregisterChildDragger (SoDragger *child) |
void | registerChildDraggerMovingIndependently (SoDragger *child) |
void | unregisterChildDraggerMovingIndependently (SoDragger *child) |
SbMatrix | getLocalToWorldMatrix (void) |
SbMatrix | getWorldToLocalMatrix (void) |
SbVec3f | getLocalStartingPoint (void) |
SbVec3f | getWorldStartingPoint (void) |
void | getPartToLocalMatrix (const SbName &partname, SbMatrix &parttolocalmatrix, SbMatrix &localtopartmatrix) |
void | transformMatrixLocalToWorld (const SbMatrix &frommatrix, SbMatrix &tomatrix) |
void | transformMatrixWorldToLocal (const SbMatrix &frommatrix, SbMatrix &tomatrix) |
void | transformMatrixToLocalSpace (const SbMatrix &frommatrix, SbMatrix &tomatrix, const SbName &fromspacepartname) |
void | setMotionMatrix (const SbMatrix &newmatrix) |
void | valueChanged (void) |
const SbMatrix & | getStartMotionMatrix (void) |
virtual void | saveStartParameters (void) |
const SoPath * | getPickPath (void) const |
const SoEvent * | getEvent (void) const |
SoPath * | createPathToThis (void) |
const SoPath * | getSurrogatePartPickedOwner (void) const |
const SbName & | getSurrogatePartPickedName (void) const |
const SoPath * | getSurrogatePartPickedPath (void) const |
void | setStartingPoint (const SoPickedPoint *newpoint) |
void | setStartingPoint (const SbVec3f &newpoint) |
const SbViewVolume & | getViewVolume (void) |
void | setViewVolume (const SbViewVolume &vol) |
const SbViewportRegion & | getViewportRegion (void) |
void | setViewportRegion (const SbViewportRegion ®) |
SoHandleEventAction * | getHandleEventAction (void) const |
void | setHandleEventAction (SoHandleEventAction *newAction) |
void | setTempPathToThis (const SoPath *somethingclose) |
virtual void | grabEventsSetup (void) |
virtual void | grabEventsCleanup (void) |
void | workFieldsIntoTransform (SbMatrix &mtx) |
void | setFrontOnProjector (ProjectorFrontSetting newval) |
ProjectorFrontSetting | getFrontOnProjector (void) const |
Static Public Methods | |
void | setMinScale (float newminscale) |
float | getMinScale (void) |
void | workValuesIntoTransform (SbMatrix &mtx, const SbVec3f *translationptr, const SbRotation *rotationptr, const SbVec3f *scalefactorptr, const SbRotation *scaleorientationptr, const SbVec3f *centerptr) |
void | getTransformFast (SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scalefactor, SbRotation &scaleorientation, const SbVec3f ¢er) |
void | getTransformFast (SbMatrix &mtx, SbVec3f &translation, SbRotation &rotation, SbVec3f &scalefactor, SbRotation &scaleorientation) |
SbMatrix | appendTranslation (const SbMatrix &mtx, const SbVec3f &translation, const SbMatrix *conversion=NULL) |
SbMatrix | appendScale (const SbMatrix &mtx, const SbVec3f &scale, const SbVec3f &scalecenter, const SbMatrix *conversion=NULL) |
SbMatrix | appendRotation (const SbMatrix &mtx, const SbRotation &rot, const SbVec3f &rotcenter, const SbMatrix *conversion=NULL) |
void | initClass (void) |
void | initClasses (void) |
Public Attributes | |
SoSFBool | isActive |
Protected Methods | |
SoDragger (void) | |
virtual | ~SoDragger () |
SbVec2f | getNormalizedLocaterPosition (void) |
SbVec2s | getLocaterPosition (void) |
SbVec2s | getStartLocaterPosition (void) const |
void | setStartLocaterPosition (SbVec2s p) |
SbBool | isAdequateConstraintMotion (void) |
virtual SbBool | shouldGrabBasedOnSurrogate (const SoPath *pickpath, const SoPath *surrogatepath) |
void | setCameraInfo (SoAction *action) |
virtual void | handleEvent (SoHandleEventAction *ha) |
void | transferMotion (SoDragger *child) |
void | setIgnoreInBbox (SbBool newval) |
SbBool | isIgnoreInBbox (void) |
virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
void | setActiveChildDragger (SoDragger *newchilddragger) |
SoDragger * | getActiveChildDragger (void) const |
virtual void | setDefaultOnNonWritingFields (void) |
void | updateDraggerCache (const SoPath *path) |
Static Protected Methods | |
void | childTransferMotionAndValueChangedCB (void *, SoDragger *) |
void | childValueChangedCB (void *, SoDragger *) |
void | childStartCB (void *, SoDragger *) |
void | childMotionCB (void *, SoDragger *) |
void | childFinishCB (void *, SoDragger *) |
void | childOtherEventCB (void *, SoDragger *) |
It holds the motion matrix, and offers lots of convenience methods for subdraggers.
The motion matrix is used to modify the model matrix during traversal, and all draggers should update this during dragging.
|
Holds various settings for projectors, which might affect cylindrical and spherical based draggers. Specifies whether dragging should be based on the front or back of the sphere / cylinder, or if the picked point should be used to decide this. |
|
A protected constructor for this abstract superclass for all Coin draggers. |
|
Virtual protected destructor. |
|
Action method for SoCallbackAction. Simply updates the state according to how the node behaves for the render action, so the application programmer can use the SoCallbackAction for extracting information about the scene graph. Reimplemented from SoBaseKit. |
|
Action method for the SoGLRenderAction. This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method. Reimplemented from SoBaseKit. Reimplemented in SoTabPlaneDragger. |
|
Action method for SoGetMatrixAction. Updates action by accumulating with the transformation matrix of this node (if any). Reimplemented from SoBaseKit. Reimplemented in SoCenterballDragger. |
|
Action method for SoRayPickAction. Checks the ray specification of the action and tests for intersection with the data of the node. Nodes influencing relevant state variables for how picking is done also overrides this method. Reimplemented from SoBaseKit. |
|
Action method for SoSearchAction. Compares the search criteria from the action to see if this node is a match. Searching is done by matching up all criteria set up in the SoSearchAction -- if any of the requested criteria is a miss, the search is not deemed successful for the node.
Reimplemented from SoBaseKit. |
|
Action method for SoWriteAction. Writes out a node object, and any connected nodes, engines etc, if necessary. Reimplemented from SoBaseKit. |
|
Action method for the SoGetPrimitiveCountAction. Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the action. Nodes influencing how geometry nodes calculates their primitive count also overrides this method to change the relevant state variables. Reimplemented from SoBaseKit. |
|
Adds a callback which is called at the start of a drag, after the mouse button 1 is pressed, and dragger is picked. |
|
Removes a previously registered start callback.
|
|
Adds a callback which is called for each mouse movement during dragging. |
|
Removes a previously registered motion callback.
|
|
Adds a callback which is called after dragging is finished. |
|
Removes a finish callback.
|
|
Adds a callback which is called after a dragger has changed a field. It is not called if the SoDragger::isActive field is changed.
|
|
Removes a value changed callback.
|
|
Sets the number of pixel movement needed to trigger a constraint gesture. Default is 8 pixels. |
|
Returns the gesture pixels threshold value.
|
|
Enable or disable "value changed" callbacks.
|
|
Returns the motion matrix for this dragger. |
|
Adds an event callback for events other then drag events. As soon as dragging starts, the dragger grabs all events (until mouse button is released). This method can be used to handle other events during dragging. |
|
Removes a other event callback.
|
|
Should be called by compound draggers to register child draggers. |
|
Should be called by compound draggers to unregister child draggers. |
|
Should be called by compund draggers to register child draggers that should move independently of their parent. |
|
Should be called by compund draggers to unregister child draggers.
|
|
Returns a matrix that converts from local to world space. |
|
Returns a matrix that converts from world to local space. |
|
Returns the drag starting point in the local coordinate system. |
|
Returns the drag starting point in the world coordinate system. |
|
Returns matrices that will convert between local space and the space in which partname lies in. |
|
Convenience method that transforms the local frommatrix to a world coordinate systems matrix. |
|
Convenience method that transforms the world frommatrix to a local coordinate systems matrix. |
|
Transforms a matrix that lies in the frompartname coordinate system into the local coordinate system. |
|
Sets the motion matrix. Triggers value changes callbacks if matrix != oldmatrix. |
|
Can be called by subclasses to trigger value changed callbacks. This might be needed if a field is changed without changing the motion matrix. |
|
Returns the motion matrix as it was when saveStartParameters() was called. |
|
This is invoked to save start parameters, to enable draggers to calculate relative motion. Default method in superclass SoDragger just saves the motion matrix, but subclasses should overload this method if other data needs to be saved. Reimplemented in SoCenterballDragger. |
|
Returns the picked path. |
|
Returns the current event. |
|
Creates a new path to this dragger. Don't forget to ref() and unref() since this method creates a fresh copy for you. |
|
Returns the path to the SoInteractionKit that holds the current surrogate path. |
|
Returns the name of the path in the SoInteractionKit that holds the current surrogate path. |
|
Returns the current surrogate path. |
|
Sets the staring point for the drag. point is usually a picked point from a SoRayPickAction. |
|
Sets the starting point for a drag. |
|
Return the current view volume. |
|
Sets the current view volume. |
|
Returns the current viewport region. |
|
Sets the current viewport region. |
|
Return the current (most recent) SoHandleEventAction. |
|
Stores a handle event action. |
|
This function is part of the original SGI Inventor 2.1 API, but has not been implemented in Coin as it looks like a function which should probably have been private in Open Inventor. |
|
Called when dragger starts grabbing events (mouse button down). Overload if you need to do something extra in your dragger.
Reimplemented from SoNode. |
|
Called when dragger stops grabbing events (mouse button up).
Reimplemented from SoNode. |
|
Examines the fields of the dragger, changes the matrix according to those fields and leaves the rest of the matrix as it was. The following field names are supported: translation, scaleFactor, rotation and scaleOrientation. |
|
Controls the behaviour of the SbProjector. |
|
Returns the behaviour of the SbProjector. |
|
Sets the minimum scale value all scale factors are clamped against. This is used in workFieldsIntoTransform(). The default value is 0.01 |
|
Returns the minimum scale value.
|
|
Same as above, but pointers to values are supplied. If a pointer is |
|
Can be used when there is no scaleorientation. Faster than SoDragger::workValuesIntoTransform(). |
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
|
Returns matrix after translation has been appended. If conversion != |
|
Returns matrix after scale and scalecenter has been appended. If conversion != |
|
Appends rot, around rotcenter, to matrix. If conversion is != |
|
Initializes type system for this dragger class. Application programmers should usually not have to invoke this method, see documentation of SoInteraction::initClass(). Reimplemented from SoInteractionKit. Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, and SoTranslate2Dragger. |
|
Initializes all built-in draggers. Reimplemented from SoNode. |
|
Returns the position of the locater. |
|
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. |
|
Returns the position when mouse button 1 was pressed. |
|
The start locater position is automatically set when mouse button 1 goes down, but subclasses can use this method to reset the value. |
|
Checks if the mouse pointer has been moved enough after the end-user hit a constraint mode key (which is typically |
|
Checks if pickpath contains surrogatepath and returns |
|
Store data about the current camera in the given action. |
|
Overloaded to detect picks on dragger. Reimplemented from SoBaseKit. |
|
For internal use only. |
|
Sets whether dragger geometry should be ignored when calculating bbox. |
|
Returns whether dragger geometry should be ignored when calculating bbox. |
|
Overloaded to ignore dragger bounding box if SoDragger::isIgnoreInBbox() is Reimplemented from SoBaseKit. Reimplemented in SoCenterballDragger. |
|
For internal use only. |
|
For internal use only. |
|
(Be aware that this method is unlikely to be of interest to the application programmer who does not want to extend the library with new custom nodekits or draggers. If you indeed are writing extensions, see the information in the SoBaseKit class documentation.)
A virtual method that should call SoField::setDefault() with argument This is typically done when:
Reimplemented from SoInteractionKit. Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, and SoTransformerDragger. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
For internal use only. |
|
Is |