1 /*=========================================================================
4 Module: $RCSfile: wxImageViewerWidget.h,v $
6 Date: $Date: 2008/10/31 16:32:42 $
7 Version: $Revision: 1.1 $
9 Copyright: (c) 2002, 2003
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notice for more information.
16 =========================================================================*/
18 #ifndef __WX__IMAGE__VIEWER__WIDGET__
19 #define __WX__IMAGE__VIEWER__WIDGET__
21 //As it is extremely easy to use vtkImageViewer/ vtkImageViewer2, I gave up with
25 #include "InterfaceVtkPanelWidgets.h"
26 // #include "vtk3DSurfaceWidget.h" //EED pour avoir access a la classe "InterfaceVtkPanelWidgets"
28 #include "../manualContour.h"
29 #include "wxVTKRenderWindowInteractorEditContour.h"
31 #include "wxVTKRenderWindowInteractor.h"
32 #include "vtkImageViewer2.h"
33 #include "vtkImageData.h"
35 #include "vtkPoints.h"
37 class marZoomROIObserver;
40 class wxVtk2DView_TMP : public wxVtkBaseView{
42 wxVtk2DView_TMP(vtkImageViewer2 *imageviewer2);
44 virtual vtkRenderer *GetRenderer();
45 virtual vtkRenderWindow *GetRenWin();
46 virtual void Configure();
47 void SetWxVTKRenderWindowInteractor( wxVTKRenderWindowInteractor *wxVTKiren);
48 virtual wxVTKRenderWindowInteractor *GetWxVTKRenderWindowInteractor();
51 wxVTKRenderWindowInteractor *_wxVTKiren;
52 vtkImageViewer2 *_imageviewer2;
57 * \brief Panel class composed of a vtk renderwindow with double click available
58 * and add some buttons
60 class wxImageViewerWidget : public wxPanel{
66 const wxPoint &pos = wxDefaultPosition,
67 const wxSize& size = wxDefaultSize,
68 long style = wxSUNKEN_BORDER, //wxTAB_TRAVERSAL,
69 const wxString& name = wxPanelNameStr
71 ~wxImageViewerWidget( );
73 virtual void ConstructVTK(vtkImageData *imageData);
74 virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata);
75 void ExecuteEvent1(vtkObject *wdg, unsigned long event, void* calldata);
76 void ExecuteEvent2(vtkObject *wdg, unsigned long event, void* calldata);
77 void SetImage(vtkImageData* imagedata);
78 void SetInterfaceVtkPanelWidgets(InterfaceVtkPanelWidgets * intVtkPanWid) { _intVtkPanWid = intVtkPanWid; };
80 void SetState(int state);
81 void SetStateManualContour(int state);
82 void CreateNewManualContour();
83 int GetNumberOfPointsSplineManualContour();
84 double* GetVectorPointsXManualContour();
85 double* GetVectorPointsYManualContour();
86 void EraseManualContour();
87 void SetZSlice(int z);
97 marZoomROIObserver *_Observer;
98 vtkInteractorStyle2DMaracas *_interactorStyle2DMaracas;
99 vtkImageViewer2 *_imageViewer;
100 InterfaceVtkPanelWidgets *_intVtkPanWid;
101 wxVTKRenderWindowInteractorEditContour *_wxVTKiren;
104 manualContourControler *_manContControl;
105 manualContourModel *_mContourModel;
106 manualViewContour *_mViewContour;
110 //----------------------------------------------------------------------------
112 class wxImageViewerWidgetRoi : public wxImageViewerWidget{
114 wxImageViewerWidgetRoi(
117 const wxPoint &pos = wxDefaultPosition,
118 const wxSize& size = wxDefaultSize,
119 long style = wxSUNKEN_BORDER, //wxTAB_TRAVERSAL,
120 const wxString& name = wxPanelNameStr
122 ~wxImageViewerWidgetRoi( );
123 void GetROI( int extent[6] );
124 virtual void ConstructVTK(vtkImageData *imageData);
125 void TransfromeCoordViewWorld(int &X, int &Y, int &Z);
126 bool GetRoiSelected();
129 virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata);
134 vtkActor *_bboxActor;
135 vtkPolyDataMapper *_bboxMapper;
138 #endif // __WX__IMAGE__VIEWER__WIDGET__