--- /dev/null
+/*=========================================================================
+
+ 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 <wx/wx.h>
+
+#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__