MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00009 //---------------------------------------------------------------------------------- 00010 00011 00012 #ifndef __SoCSODistancePolylineEditor_H 00013 #define __SoCSODistancePolylineEditor_H 00014 00015 #include <SoView2DCSOEditor/SoView2DCSOExtensibleEditor/SoCSOLineCreatorEditorExtension.h> 00016 00018 00020 class SOCSO_EXPORT SoCSODistancePolylineEditor : public SoCSOLineCreatorEditorExtension 00021 { 00022 SO_NODE_HEADER(SoCSODistancePolylineEditor); 00023 00024 public: 00025 00027 SoCSODistancePolylineEditor(); 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_POLYLINE_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 // __SoCSODistancePolylineEditor_H