wxImageViewerWidget.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   wxMaracas
00004   Module:    $RCSfile: wxImageViewerWidget.h,v $
00005   Language:  C++
00006   Date:      $Date: 2009/05/14 13:54:57 $
00007   Version:   $Revision: 1.1 $
00008 
00009   Copyright: (c) 2002, 2003
00010   License:
00011   
00012      This software is distributed WITHOUT ANY WARRANTY; without even 
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00014      PURPOSE.  See the above copyright notice for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __WX__IMAGE__VIEWER__WIDGET__
00019 #define __WX__IMAGE__VIEWER__WIDGET__
00020 
00021 //As it is extremely easy to use vtkImageViewer/ vtkImageViewer2, I gave up with
00022 //vtkImagePlaneWidget
00023 #include <wx/wx.h>
00024 
00025 #include "InterfaceVtkPanelWidgets.h"
00026 //  #include "vtk3DSurfaceWidget.h"  //EED pour avoir access a la classe "InterfaceVtkPanelWidgets"
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, //wxTAB_TRAVERSAL,
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, //wxTAB_TRAVERSAL,
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__

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1