00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOTRANSLATE2DRAGGER_H
00021
#define COIN_SOTRANSLATE2DRAGGER_H
00022
00023
#include <Inventor/draggers/SoDragger.h>
00024
#include <Inventor/fields/SoSFVec3f.h>
00025
00026
class SoSensor;
00027
class SoFieldSensor;
00028
class SbPlaneProjector;
00029
00030
00031 class COIN_DLL_API SoTranslate2Dragger :
public SoDragger {
00032
typedef SoDragger inherited;
00033
00034 SO_KIT_HEADER(SoTranslate2Dragger);
00035
00036 SO_KIT_CATALOG_ENTRY_HEADER(axisFeedbackSwitch);
00037 SO_KIT_CATALOG_ENTRY_HEADER(feedback);
00038 SO_KIT_CATALOG_ENTRY_HEADER(feedbackActive);
00039 SO_KIT_CATALOG_ENTRY_HEADER(feedbackSwitch);
00040 SO_KIT_CATALOG_ENTRY_HEADER(translator);
00041 SO_KIT_CATALOG_ENTRY_HEADER(translatorActive);
00042 SO_KIT_CATALOG_ENTRY_HEADER(translatorSwitch);
00043 SO_KIT_CATALOG_ENTRY_HEADER(xAxisFeedback);
00044 SO_KIT_CATALOG_ENTRY_HEADER(yAxisFeedback);
00045
00046
00047
public:
00048
static void initClass(
void);
00049 SoTranslate2Dragger(
void);
00050
00051
SoSFVec3f translation;
00052
00053
protected:
00054 ~SoTranslate2Dragger();
00055
virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways = FALSE);
00056
00057
static void startCB(
void * f,
SoDragger * d);
00058
static void motionCB(
void * f,
SoDragger * d);
00059
static void finishCB(
void * f,
SoDragger * d);
00060
static void metaKeyChangeCB(
void * f,
SoDragger * d);
00061
static void fieldSensorCB(
void * f,
SoSensor * s);
00062
static void valueChangedCB(
void * f,
SoDragger * d);
00063
00064
void dragStart(
void);
00065
void drag(
void);
00066
void dragFinish(
void);
00067
00068
SoFieldSensor * fieldSensor;
00069
SbVec3f worldRestartPt;
00070
SbPlaneProjector * planeProj;
00071
00072
private:
00073
int constraintState;
00074 };
00075
00076
#endif // !COIN_SOTRANSLATE2DRAGGER_H