X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2Finclude%2FwxImageViewerWidget.h;fp=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2Finclude%2FwxImageViewerWidget.h;h=99a756110e876e8983e2b858243b997f00c07ae3;hb=a4ee3758aa0477f677fb981e2c4d6e29995e8db8;hp=0000000000000000000000000000000000000000;hpb=cc20770ee090848c31a8f18c277d89f2b904e087;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxImageViewerWidget.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxImageViewerWidget.h new file mode 100644 index 0000000..99a7561 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxImageViewerWidget.h @@ -0,0 +1,138 @@ +/*========================================================================= + + Program: wxMaracas + Module: $RCSfile: wxImageViewerWidget.h,v $ + Language: C++ + Date: $Date: 2009/05/14 13:54:57 $ + Version: $Revision: 1.1 $ + + Copyright: (c) 2002, 2003 + License: + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ + +#ifndef __WX__IMAGE__VIEWER__WIDGET__ +#define __WX__IMAGE__VIEWER__WIDGET__ + +//As it is extremely easy to use vtkImageViewer/ vtkImageViewer2, I gave up with +//vtkImagePlaneWidget +#include + +#include "InterfaceVtkPanelWidgets.h" +// #include "vtk3DSurfaceWidget.h" //EED pour avoir access a la classe "InterfaceVtkPanelWidgets" + +#include "../manualContour.h" +#include "wxVTKRenderWindowInteractorEditContour.h" + +#include "wxVTKRenderWindowInteractor.h" +#include "vtkImageViewer2.h" +#include "vtkImageData.h" +#include "vtkActor.h" +#include "vtkPoints.h" + +class marZoomROIObserver; + + +class wxVtk2DView_TMP : public wxVtkBaseView{ +public: + wxVtk2DView_TMP(vtkImageViewer2 *imageviewer2); + ~wxVtk2DView_TMP(); + virtual vtkRenderer *GetRenderer(); + virtual vtkRenderWindow *GetRenWin(); + virtual void Configure(); + void SetWxVTKRenderWindowInteractor( wxVTKRenderWindowInteractor *wxVTKiren); + virtual wxVTKRenderWindowInteractor *GetWxVTKRenderWindowInteractor(); + +private: + wxVTKRenderWindowInteractor *_wxVTKiren; + vtkImageViewer2 *_imageviewer2; +}; + + +/** + * \brief Panel class composed of a vtk renderwindow with double click available + * and add some buttons + */ +class wxImageViewerWidget : public wxPanel{ +public: + + wxImageViewerWidget( + wxWindow *parent, + wxWindowID id = -1, + const wxPoint &pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSUNKEN_BORDER, //wxTAB_TRAVERSAL, + const wxString& name = wxPanelNameStr + ); + ~wxImageViewerWidget( ); + + virtual void ConstructVTK(vtkImageData *imageData); + virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata); + void ExecuteEvent1(vtkObject *wdg, unsigned long event, void* calldata); + void ExecuteEvent2(vtkObject *wdg, unsigned long event, void* calldata); + void SetImage(vtkImageData* imagedata); + void SetInterfaceVtkPanelWidgets(InterfaceVtkPanelWidgets * intVtkPanWid) { _intVtkPanWid = intVtkPanWid; }; + + void SetState(int state); + void SetStateManualContour(int state); + void CreateNewManualContour(); + int GetNumberOfPointsSplineManualContour(); + double* GetVectorPointsXManualContour(); + double* GetVectorPointsYManualContour(); + void EraseManualContour(); + void SetZSlice(int z); + int GetZSlice(); + void Render(); + + + void AddObserver_1(); + void AddObserver_2(); + +protected: + int _state; + marZoomROIObserver *_Observer; + vtkInteractorStyle2DMaracas *_interactorStyle2DMaracas; + vtkImageViewer2 *_imageViewer; + InterfaceVtkPanelWidgets *_intVtkPanWid; + wxVTKRenderWindowInteractorEditContour *_wxVTKiren; + +private: + manualContourControler *_manContControl; + manualContourModel *_mContourModel; + manualViewContour *_mViewContour; + +}; + +//---------------------------------------------------------------------------- + +class wxImageViewerWidgetRoi : public wxImageViewerWidget{ +public : + wxImageViewerWidgetRoi( + wxWindow* parent, + wxWindowID id = -1, + const wxPoint &pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSUNKEN_BORDER, //wxTAB_TRAVERSAL, + const wxString& name = wxPanelNameStr + ); + ~wxImageViewerWidgetRoi( ); + void GetROI( int extent[6] ); + virtual void ConstructVTK(vtkImageData *imageData); + void TransfromeCoordViewWorld(int &X, int &Y, int &Z); + bool GetRoiSelected(); + +private : + virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata); + bool _bboxEnabled; + bool _sliceEnabled; + bool _RoiSelected; + vtkPoints *_pts; + vtkActor *_bboxActor; + vtkPolyDataMapper *_bboxMapper; + vtkPolyData *_pd; +}; +#endif // __WX__IMAGE__VIEWER__WIDGET__