MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00009 //---------------------------------------------------------------------------------- 00010 00011 00012 #ifndef __SoCSOPointEditor_H 00013 #define __SoCSOPointEditor_H 00014 00015 #include <SoView2DCSOEditor/SoView2DCSOExtensibleEditor/SoCSOCreatorEditorExtension.h> 00016 00018 00020 class SOCSO_EXPORT SoCSOPointEditor : public SoCSOCreatorEditorExtension 00021 { 00022 SO_NODE_HEADER(SoCSOPointEditor); 00023 00024 public: 00025 00027 SoCSOPointEditor(); 00028 00030 SoSFEnum drawingMode; 00031 00033 virtual void draw(const CSODrawCSOInfos& csoInfos, const CSODrawView2DInfos& view2DInfos, const CSODrawSliceInformation& drawSliceInfo, SoView2DCSOExtensibleEditor* editor); 00034 00036 static void initClass(); 00037 00038 00039 virtual void createStartPressAt(const SoPointerPosition& pos); 00040 virtual void createDragMoveTo(const SoPointerPosition& pos); 00041 virtual bool createEndPress(int clickCount); 00042 00043 virtual void selectAndMoveStartPressAt(const SoPointerPosition& pos); 00044 virtual void selectAndMoveDragMoveTo(const SoPointerPosition& pos); 00045 virtual SoPointingAction* selectAndMoveEndPress(int clickCount); 00046 00047 virtual int cursorShape() const { return SoViewerProxy::CROSS_POINT_CURSOR; } 00048 00049 enum PointDrawingMode { 00050 POINT_DRAWING_MODE_POINT = 0, 00051 POINT_DRAWING_MODE_CROSSHAIR = 1 00052 }; 00053 00054 protected: 00055 00056 private: 00057 00058 void renderCrosshair(const CSODrawCSOInfos& csoInfos, const CSODrawView2DInfos& view2DInfos, const CSODrawSliceInformation& drawSliceInfo); 00059 void renderCrosshair(int deviceXCenter, int deviceYCenter, const SbColor& color, float alpha) const; 00060 void glRenderOpaqueLine(int deviceXStart, int deviceYStart, int deviceXEnd, int deviceYEnd, const SbColor& color, float alpha) const; 00061 void glRenderFadingOutLine(int deviceXStart, int deviceYStart, int deviceXEnd, int deviceYEnd, const SbColor& color, float alpha) const; 00062 00063 ml::CSO* _newCSO; 00064 SbVec3f _startPosition; 00065 }; 00066 00068 00069 #endif // __SoCSOPointEditor_H