MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/SoView2DCSOEditor/SoView2DCSOExtensibleEditor/extensions/SoCSOPolygonEditor/SoCSOPolygonEditor.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 
00012 #ifndef __SoCSOPolygonEditor_H
00013 #define __SoCSOPolygonEditor_H
00014 
00015 #include <SoView2DCSOEditor/SoView2DCSOExtensibleEditor/SoCSOLineCreatorEditorExtension.h>
00016 
00018 
00020 class SOCSO_EXPORT SoCSOPolygonEditor : public SoCSOLineCreatorEditorExtension
00021 {
00022   SO_NODE_HEADER(SoCSOPolygonEditor);
00023 
00024 public:
00025 
00027   SoCSOPolygonEditor();
00028 
00030   static void initClass();
00031  
00033   SoSFBool useFreehandMode;
00034 
00035   virtual void createStartPressAt(const SoPointerPosition& pos);
00036 
00037   void createNewCSO( const SoPointerPosition& pos );
00038   virtual void createDragMoveTo(const SoPointerPosition& pos);
00039   virtual bool createEndPress(int clickCount);
00040 
00041   virtual void pointerPosition(const SoPointerPosition& pos);
00042 
00043   virtual void selectAndMoveStartPressAt(const SoPointerPosition& pos);
00044   virtual void selectAndMoveDragMoveTo(const SoPointerPosition& pos);
00045   virtual SoPointingAction* selectAndMoveEndPress(int clickCount);
00046 
00047   virtual void insertSeedPointStartPressAt(const SoPointerPosition& pos);
00048   virtual void insertSeedPointDragMoveTo(const SoPointerPosition& pos);
00049   virtual SoPointingAction* insertSeedPointEndPress(int clickCount);
00050 
00051   virtual int cursorShape() const { return SoViewerProxy::CROSS_POLYGON_CURSOR; }
00052 
00053   virtual bool deleteSeedPoint(ml::CSO* cso, ml::CSOSeedPoint* seedPoint);
00054   
00055   virtual void cancel();
00056 
00057 protected:
00058 
00059   ml::Vector3 getCurrentPositon(const SoPointerPosition& pos);
00060 
00061 private:
00062   
00063   SbVec3f     _startPosition;
00064   ml::Vector3 _currentPosition;
00065 };
00066 
00068 
00069 #endif // __SoCSOPolygonEditor_H