MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/SoView2DCSOEditor/SoView2DCSOExtensibleEditor/CSOActions/CSOSelectAndMoveAction.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 
00012 #ifndef __CSOSelectAndMoveAction_H
00013 #define __CSOSelectAndMoveAction_H
00014 
00015 
00016 #include <SoPointingAction.h>
00017 
00018 class SoView2DCSOExtensibleEditor;
00019 
00021 
00022 class CSOSelectAndMoveAction : public SoPointingAction
00023 {
00024 public:
00025 
00026   CSOSelectAndMoveAction(SoView2DCSOExtensibleEditor* editor);
00027 
00028   virtual bool isSensitiveAt(const SoPointerPosition& pos);
00029 
00030   virtual void startPressAt(const SoPointerPosition& pos); 
00031   virtual void dragMoveTo(const SoPointerPosition& pos);
00032   virtual SoPointingAction* endPress(int clickCount);
00033 
00034   virtual int getCurrentCursor(SoViewerProxy* ) const;
00035 
00038   inline void setInteractOnlyWithSelectedCSO(bool flag) { _interactOnlyWithSelectedCSOs = flag; }
00039 
00040   virtual void setMode(int mode);
00041   virtual int getNumModes() const;
00042 
00043 protected:
00044 
00045   void initializeMembers();
00046 
00047   SoView2DCSOExtensibleEditor* _editor;
00048 
00049   ml::CSOList*          _hitCSOList;
00050   ml::CSO*              _hitCSO;
00051   ml::CSOSeedPoint*     _hitSeedPoint;
00052   ml::CSOPathPoints*    _hitPathPoints;
00053   SoCSOEditorExtension* _hitEditor;
00054   float                 _hitDistance;
00055 
00056   bool _interactOnlyWithSelectedCSOs;
00057 
00058   int _cursorShape;
00059 };
00060 
00062 
00063 #endif // __CSOSelectAndMoveAction_H
00064