]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxImageViewerWidget.h
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / include / wxImageViewerWidget.h
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 (file)
index 0000000..99a7561
--- /dev/null
@@ -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 <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__