wxImageViewerWidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __WX__IMAGE__VIEWER__WIDGET__
00019 #define __WX__IMAGE__VIEWER__WIDGET__
00020
00021
00022
00023 #include <wx/wx.h>
00024
00025 #include "InterfaceVtkPanelWidgets.h"
00026
00027
00028 #include "../manualContour.h"
00029 #include "wxVTKRenderWindowInteractorEditContour.h"
00030
00031 #include "wxVTKRenderWindowInteractor.h"
00032 #include "vtkImageViewer2.h"
00033 #include "vtkImageData.h"
00034 #include "vtkActor.h"
00035 #include "vtkPoints.h"
00036
00037 class marZoomROIObserver;
00038
00039
00040 class wxVtk2DView_TMP : public wxVtkBaseView{
00041 public:
00042 wxVtk2DView_TMP(vtkImageViewer2 *imageviewer2);
00043 ~wxVtk2DView_TMP();
00044 virtual vtkRenderer *GetRenderer();
00045 virtual vtkRenderWindow *GetRenWin();
00046 virtual void Configure();
00047 void SetWxVTKRenderWindowInteractor( wxVTKRenderWindowInteractor *wxVTKiren);
00048 virtual wxVTKRenderWindowInteractor *GetWxVTKRenderWindowInteractor();
00049
00050 private:
00051 wxVTKRenderWindowInteractor *_wxVTKiren;
00052 vtkImageViewer2 *_imageviewer2;
00053 };
00054
00055
00060 class wxImageViewerWidget : public wxPanel{
00061 public:
00062
00063 wxImageViewerWidget(
00064 wxWindow *parent,
00065 wxWindowID id = -1,
00066 const wxPoint &pos = wxDefaultPosition,
00067 const wxSize& size = wxDefaultSize,
00068 long style = wxSUNKEN_BORDER,
00069 const wxString& name = wxPanelNameStr
00070 );
00071 ~wxImageViewerWidget( );
00072
00073 virtual void ConstructVTK(vtkImageData *imageData);
00074 virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata);
00075 void ExecuteEvent1(vtkObject *wdg, unsigned long event, void* calldata);
00076 void ExecuteEvent2(vtkObject *wdg, unsigned long event, void* calldata);
00077 void SetImage(vtkImageData* imagedata);
00078 void SetInterfaceVtkPanelWidgets(InterfaceVtkPanelWidgets * intVtkPanWid) { _intVtkPanWid = intVtkPanWid; };
00079
00080 void SetState(int state);
00081 void SetStateManualContour(int state);
00082 void CreateNewManualContour();
00083 int GetNumberOfPointsSplineManualContour();
00084 double* GetVectorPointsXManualContour();
00085 double* GetVectorPointsYManualContour();
00086 void EraseManualContour();
00087 void SetZSlice(int z);
00088 int GetZSlice();
00089 void Render();
00090
00091
00092 void AddObserver_1();
00093 void AddObserver_2();
00094
00095 protected:
00096 int _state;
00097 marZoomROIObserver *_Observer;
00098 vtkInteractorStyle2DMaracas *_interactorStyle2DMaracas;
00099 vtkImageViewer2 *_imageViewer;
00100 InterfaceVtkPanelWidgets *_intVtkPanWid;
00101 wxVTKRenderWindowInteractorEditContour *_wxVTKiren;
00102
00103 private:
00104 manualContourControler *_manContControl;
00105 manualContourModel *_mContourModel;
00106 manualViewContour *_mViewContour;
00107
00108 };
00109
00110
00111
00112 class wxImageViewerWidgetRoi : public wxImageViewerWidget{
00113 public :
00114 wxImageViewerWidgetRoi(
00115 wxWindow* parent,
00116 wxWindowID id = -1,
00117 const wxPoint &pos = wxDefaultPosition,
00118 const wxSize& size = wxDefaultSize,
00119 long style = wxSUNKEN_BORDER,
00120 const wxString& name = wxPanelNameStr
00121 );
00122 ~wxImageViewerWidgetRoi( );
00123 void GetROI( int extent[6] );
00124 virtual void ConstructVTK(vtkImageData *imageData);
00125 void TransfromeCoordViewWorld(int &X, int &Y, int &Z);
00126 bool GetRoiSelected();
00127
00128 private :
00129 virtual void ExecuteEvent(vtkObject *wdg, unsigned long event, void* calldata);
00130 bool _bboxEnabled;
00131 bool _sliceEnabled;
00132 bool _RoiSelected;
00133 vtkPoints *_pts;
00134 vtkActor *_bboxActor;
00135 vtkPolyDataMapper *_bboxMapper;
00136 vtkPolyData *_pd;
00137 };
00138 #endif // __WX__IMAGE__VIEWER__WIDGET__