1 #ifndef COIN_SOTRACKBALLDRAGGER_H
2 #define COIN_SOTRACKBALLDRAGGER_H
27 #include <Inventor/draggers/SoDragger.h>
28 #include <Inventor/fields/SoSFRotation.h>
29 #include <Inventor/fields/SoSFVec3f.h>
30 #include <Inventor/SbVec2f.h>
31 #include <Inventor/SbTime.h>
45 SO_KIT_CATALOG_ENTRY_HEADER(XRotator);
46 SO_KIT_CATALOG_ENTRY_HEADER(XRotatorActive);
47 SO_KIT_CATALOG_ENTRY_HEADER(XRotatorSwitch);
48 SO_KIT_CATALOG_ENTRY_HEADER(YRotator);
49 SO_KIT_CATALOG_ENTRY_HEADER(YRotatorActive);
50 SO_KIT_CATALOG_ENTRY_HEADER(YRotatorSwitch);
51 SO_KIT_CATALOG_ENTRY_HEADER(ZRotator);
52 SO_KIT_CATALOG_ENTRY_HEADER(ZRotatorActive);
53 SO_KIT_CATALOG_ENTRY_HEADER(ZRotatorSwitch);
54 SO_KIT_CATALOG_ENTRY_HEADER(antiSquish);
55 SO_KIT_CATALOG_ENTRY_HEADER(rotator);
56 SO_KIT_CATALOG_ENTRY_HEADER(rotatorActive);
57 SO_KIT_CATALOG_ENTRY_HEADER(rotatorSwitch);
58 SO_KIT_CATALOG_ENTRY_HEADER(surroundScale);
59 SO_KIT_CATALOG_ENTRY_HEADER(userAxis);
60 SO_KIT_CATALOG_ENTRY_HEADER(userAxisActive);
61 SO_KIT_CATALOG_ENTRY_HEADER(userAxisRotation);
62 SO_KIT_CATALOG_ENTRY_HEADER(userAxisSwitch);
63 SO_KIT_CATALOG_ENTRY_HEADER(userRotator);
64 SO_KIT_CATALOG_ENTRY_HEADER(userRotatorActive);
65 SO_KIT_CATALOG_ENTRY_HEADER(userRotatorSwitch);
75 SbBool isAnimationEnabled(
void);
76 void setAnimationEnabled(SbBool newval);
85 void dragFinish(
void);
86 void setAllPartsActive(SbBool onoroff);
88 static void startCB(
void * f,
SoDragger * d);
89 static void motionCB(
void * f,
SoDragger * d);
90 static void finishCB(
void * f,
SoDragger * d);
91 static void metaKeyChangeCB(
void * f,
SoDragger * d);
93 static void valueChangedCB(
void * f,
SoDragger * d);
99 SoNode * getNodeFieldNode(
const char *fieldname);
100 void updateUserAxisSwitches(
const SbBool setactive = FALSE);
101 static void timerSensorCB(
void *,
SoSensor *);
103 class SoTrackballDraggerP * pimpl;
104 friend class SoTrackballDraggerP;
107 #endif // !COIN_SOTRACKBALLDRAGGER_H
void drag(void)
Definition: SoTrackballDragger.cpp:607
The SoSFVec3f class is a container for an SbVec3f vector.
Definition: SoSFVec3f.h:31
static SoField * getGlobalField(const SbName &name)
Definition: SoDB.cpp:1297
const float * getValue(void) const
Definition: SbRotation.cpp:179
The SbRotation class represents a rotation in 3D space.
Definition: SbRotation.h:33
void workFieldsIntoTransform(SbMatrix &mtx)
Definition: SoDragger.cpp:1123
~SoTrackballDragger()
Definition: SoTrackballDragger.cpp:341
The SoRotation class specifies a rotation transformation.
Definition: SoRotation.h:31
void setAllPartsActive(SbBool onoroff)
Definition: SoTrackballDragger.cpp:756
void dragStart(void)
Definition: SoTrackballDragger.cpp:478
virtual SoField * getField(const SbName &name) const
Definition: SoFieldContainer.cpp:364
SoSFVec3f scaleFactor
Definition: SoTrackballDragger.h:73
The SbVec2f class is a 2 dimensional vector with floating point coordinates.
Definition: SbVec2f.h:36
static SbRotation identity(void)
Definition: SbRotation.cpp:674
The SoTrackballDragger provides the end-user with rotation and scaling interaction possibilities.
Definition: SoTrackballDragger.h:40
The SbMatrix class is a 4x4 dimensional representation of a matrix.
Definition: SbMatrix.h:37
The SoSFRotation class is a container for an SbRotation.
Definition: SoSFRotation.h:31
The SbCylinderPlaneProjector class projects 2D points to a half-cylinder and a plane.
Definition: SbCylinderPlaneProjector.h:29
virtual SoNode * getAnyPart(const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0)
Definition: SoBaseKit.cpp:1722
The SbSphereProjector class is the abstract base class for mapping to spherical surfaces.
Definition: SbSphereProjector.h:31
The SoSensor class is the abstract base class for all sensors.
Definition: SoSensor.h:34
virtual SoNode * getPart(const SbName &partname, SbBool makeifneeded)
Definition: SoBaseKit.cpp:699
SoFieldSensor * scaleFieldSensor
Definition: SoTrackballDragger.h:96
ProjectorFrontSetting getFrontOnProjector(void) const
Definition: SoDragger.cpp:1165
const SoEvent * getEvent(void) const
Definition: SoDragger.cpp:962
void multVecMatrix(const SbVec3f &src, SbVec3f &dst) const
Definition: SbMatrix.cpp:1357
void dragFinish(void)
Definition: SoTrackballDragger.cpp:686
SoField * getAttachedField(void) const
Definition: SoFieldSensor.cpp:107
The SbCylinder class is a representation of a cylinder.
Definition: SbCylinder.h:32
void addOtherEventCallback(SoDraggerCB *func, void *data=NULL)
Definition: SoDragger.cpp:702
SbMatrix & multLeft(const SbMatrix &m)
Definition: SbMatrix.cpp:1280
static void postWarning(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:324
The SoSurroundScale class is used to automatically scale geometry to surround other geometry.
Definition: SoSurroundScale.h:34
virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways=0)
Definition: SoTrackballDragger.cpp:355
The SoSwitch class is a group node which selects one child subgraph for traversal.
Definition: SoSwitch.h:37
static void setSwitchValue(SoNode *node, const int newVal)
Definition: SoInteractionKit.cpp:358
SoSFInt32 whichChild
Definition: SoSwitch.h:47
static void motionCB(void *f, SoDragger *d)
Definition: SoTrackballDragger.cpp:780
void setPriority(uint32_t pri)
Definition: SoDelayQueueSensor.cpp:108
SbMatrix & multRight(const SbMatrix &m)
Definition: SbMatrix.cpp:1240
The SoDragger class is the base class for all draggers.
Definition: SoDragger.h:53
static void readDefaultParts(const char *fileName, const char defaultBuffer[], int defBufSize)
Definition: SoInteractionKit.cpp:433
@ FRONT
Definition: SoDragger.h:63
void addFinishCallback(SoDraggerCB *func, void *data=NULL)
Definition: SoDragger.cpp:611
void detach(void)
Definition: SoFieldSensor.cpp:92
The SbSpherePlaneProjector class projects 2D points to a half-sphere and a plane.
Definition: SbSpherePlaneProjector.h:29
virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways=0)
Definition: SoInteractionKit.cpp:648
float length(void) const
Definition: SbVec3f.cpp:356
static SbMatrix appendRotation(const SbMatrix &mtx, const SbRotation &rot, const SbVec3f &rotcenter, const SbMatrix *conversion=NULL)
Definition: SoDragger.cpp:1388
static void finishCB(void *f, SoDragger *d)
Definition: SoTrackballDragger.cpp:788
@ USE_PICK
Definition: SoDragger.h:63
void invalidate(void)
Definition: SoSurroundScale.cpp:270
const SbViewVolume & getViewVolume(void)
Definition: SoDragger.cpp:1032
void addValueChangedCallback(SoDraggerCB *func, void *data=NULL)
Definition: SoDragger.cpp:634
void setMotionMatrix(const SbMatrix &newmatrix)
Definition: SoDragger.cpp:905
int findNode(const SoNode *const node) const
Definition: SoPath.cpp:587
The SoField class is the top-level abstract base class for fields.
Definition: SoField.h:38
The SoPath class is a container class for traversal path descriptions.
Definition: SoPath.h:43
SoSFRotation rotation
Definition: SoRotation.h:40
static void valueChangedCB(void *f, SoDragger *d)
Definition: SoTrackballDragger.cpp:414
void setDefault(SbBool def)
Definition: SoField.cpp:650
static void fieldSensorCB(void *f, SoSensor *s)
Definition: SoTrackballDragger.cpp:404
SoTrackballDragger(void)
Definition: SoTrackballDragger.cpp:253
The SbSphere class is a representation of a sphere.
Definition: SbSphere.h:33
SoSFEnum sizing
Definition: SoAntiSquish.h:47
SoSFRotation rotation
Definition: SoTrackballDragger.h:72
void getTransform(SbVec3f &t, SbRotation &r, SbVec3f &s, SbRotation &so) const
Definition: SbMatrix.cpp:997
SbVec3f & setValue(const float v[3])
Definition: SbVec3f.cpp:461
The SoTimerSensor class is a sensor which will trigger at given intervals.
Definition: SoTimerSensor.h:29
static SbMatrix appendScale(const SbMatrix &mtx, const SbVec3f &scale, const SbVec3f &scalecenter, const SbMatrix *conversion=NULL)
Definition: SoDragger.cpp:1271
virtual void saveStartParameters(void)
Definition: SoDragger.cpp:944
static void startCB(void *f, SoDragger *d)
Definition: SoTrackballDragger.cpp:772
The SbVec3f class is a 3 dimensional vector with floating point coordinates.
Definition: SbVec3f.h:37
double getValue(void) const
Definition: SbTime.cpp:259
float dot(const SbVec3f &v) const
Definition: SbVec3f.cpp:282
virtual void setDefaultOnNonWritingFields(void)
Definition: SoDragger.cpp:1743
SbBool connectionsSetUp
Definition: SoBaseKit.h:142
void setAnimationEnabled(SbBool newval)
Definition: SoTrackballDragger.cpp:454
void attach(SoField *field)
Definition: SoFieldSensor.cpp:77
The SoSFTime class is a container for an SbTime value.
Definition: SoSFTime.h:31
const SbMatrix & getMotionMatrix(void)
Definition: SoDragger.cpp:688
void multVec(const SbVec3f &src, SbVec3f &dst) const
Definition: SbRotation.cpp:593
The SoFieldSensor class detects changes to a field.
Definition: SoFieldSensor.h:29
The SoInteractionKit class is a base class for draggers.
Definition: SoInteractionKit.h:41
The SoSFNode class is a container for a single node.
Definition: SoSFNode.h:38
The SbLine class represents a line in 3D space.
Definition: SbLine.h:32
The SoSeparator class is a state-preserving group node.
Definition: SoSeparator.h:34
float normalize(void)
Definition: SbVec3f.cpp:436
SbVec2f getNormalizedLocaterPosition(void)
Definition: SoDragger.cpp:1408
void setStartingPoint(const SoPickedPoint *newpoint)
Definition: SoDragger.cpp:1014
const SoPath * getPickPath(void) const
Definition: SoDragger.cpp:953
The SoAntiSquish class is used to reset to uniform scaling.
Definition: SoAntiSquish.h:33
The SbTime class instances represents time values.
Definition: SbTime.h:41
const SbMatrix & getStartMotionMatrix(void)
Definition: SoDragger.cpp:930
virtual void setDefaultOnNonWritingFields(void)
Definition: SoTrackballDragger.cpp:385
The SbCylinderProjector class is the abstract base class for mapping to cylindrical surfaces.
Definition: SbCylinderProjector.h:30
The SoBaseKit class is the toplevel superclass for nodekits.
Definition: SoBaseKit.h:57
SoFieldSensor * rotFieldSensor
Definition: SoTrackballDragger.h:95
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
void addStartCallback(SoDraggerCB *func, void *data=NULL)
Definition: SoDragger.cpp:570
static SbTime getTimeOfDay(void)
Definition: SbTime.cpp:139
SbBool isOfType(const SoType type) const
Definition: SoField.cpp:690
static void fieldSensorCB(void *, SoSensor *)
Definition: SoInteractionKit.cpp:725
The SoEvent class is the base class for all Coin events.
Definition: SoEvent.h:34
void addMotionCallback(SoDraggerCB *func, void *data=NULL)
Definition: SoDragger.cpp:591
SbBool isAnimationEnabled(void)
Definition: SoTrackballDragger.cpp:442
static void metaKeyChangeCB(void *f, SoDragger *d)
Definition: SoTrackballDragger.cpp:796
static void initClass(void)
Definition: SoDragger.cpp:388
The SbLineProjector class projects 2D points to 3D points along a line.
Definition: SbLineProjector.h:32
SbVec3f getWorldStartingPoint(void)
Definition: SoDragger.cpp:816
virtual SbBool setPartAsDefault(const SbName &partname, SoNode *node, SbBool onlyifdefault=1)
Definition: SoInteractionKit.cpp:271
@ BACK
Definition: SoDragger.h:63
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Mon Jul 27 2020 for Coin by Doxygen. 1.8.18