00001 #ifndef COIN_SOEVENT_H
00002 #define COIN_SOEVENT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <Inventor/SoType.h>
00028 #include <Inventor/SbVec2s.h>
00029 #include <Inventor/SbTime.h>
00030
00031 class SbViewportRegion;
00032 class SbVec2f;
00033
00034 class COIN_DLL_API SoEvent {
00035
00036 public:
00037 SoEvent(void);
00038 virtual ~SoEvent();
00039
00040 SbBool isOfType(SoType type) const;
00041 static SoType getClassTypeId(void);
00042 virtual SoType getTypeId(void) const;
00043
00044 void setTime(const SbTime t);
00045 SbTime getTime(void) const;
00046
00047 void setPosition(const SbVec2s & p);
00048 const SbVec2s & getPosition(void) const;
00049 const SbVec2s getPosition(const SbViewportRegion & vpRgn) const;
00050 const SbVec2f getNormalizedPosition(const SbViewportRegion & vpRgn) const;
00051
00052 void setShiftDown(SbBool isDown);
00053 SbBool wasShiftDown(void) const;
00054 void setCtrlDown(SbBool isDown);
00055 SbBool wasCtrlDown(void) const;
00056 void setAltDown(SbBool isDown);
00057 SbBool wasAltDown(void) const;
00058
00059 static void initClass(void);
00060
00061 private:
00062 static SoType classTypeId;
00063
00064 SbTime timeofevent;
00065 SbVec2s positionofevent;
00066
00067 static void initEvents(void);
00068
00069 struct {
00070 unsigned int shiftdown : 1;
00071 unsigned int ctrldown : 1;
00072 unsigned int altdown : 1;
00073 } modifiers;
00074 };
00075
00076 #endif // !COIN_SOEVENT_H