]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/VTK/ImageMPR.h
6664d31343a1c9074ac59f5bde801c01a2ee285b
[FrontAlgorithms.git] / lib / fpa / VTK / ImageMPR.h
1 #ifndef __FPA__VTK__IMAGEMPR__H__
2 #define __FPA__VTK__IMAGEMPR__H__
3
4 #include <fpa/FrontAlgorithms_Export.h>
5
6 #include <vtkActor.h>
7 #include <vtkCellPicker.h>
8 #include <vtkImageData.h>
9 #include <vtkImagePlaneWidget.h>
10 #include <vtkOutlineSource.h>
11 #include <vtkPolyDataMapper.h>
12 #include <vtkProperty.h>
13 #include <vtkRenderer.h>
14 #include <vtkRendererCollection.h>
15 #include <vtkRenderWindow.h>
16 #include <vtkRenderWindowInteractor.h>
17 #include <vtkSmartPointer.h>
18 #include <vtkSphereSource.h>
19
20 #include <vtkSeedWidget.h>
21 #include <vtkSeedRepresentation.h>
22 #include <vtkHandleWidget.h>
23 #include <vtkPointHandleRepresentation3D.h>
24
25 class vtkSeedWidget2
26   : public vtkSeedWidget
27 {
28 public:
29   // Description:
30   // Instantiate this class.
31   static vtkSeedWidget2 *New()
32     {
33       return new vtkSeedWidget2;
34     }
35
36   // Description:
37   // Standard methods for a VTK class.
38   vtkTypeMacro(vtkSeedWidget2, vtkSeedWidget);
39
40   virtual vtkPickingManager* GetPickingManager( )
41     {
42       return( this->Superclass::GetPickingManager( ) );
43     }
44
45 protected:
46   vtkSeedWidget2()
47     : Superclass( )
48     {
49     }
50   virtual ~vtkSeedWidget2()
51     {
52     }
53
54 private:
55   vtkSeedWidget2(const vtkSeedWidget2&);  //Not implemented
56   void operator=(const vtkSeedWidget2&);  //Not implemented
57 };
58
59 namespace fpa
60 {
61   namespace VTK
62   {
63     /**
64      */
65     class FrontAlgorithms_EXPORT ImageMPR
66     {
67     public:
68       ImageMPR( );
69       virtual ~ImageMPR( );
70
71       void SetImage( vtkImageData* image );
72       void SetBackground( double r, double g, double b );
73       void SetSize( unsigned int w, unsigned int h );
74
75       void AddPolyData( vtkPolyData* pd, double r, double g, double b );
76
77       vtkRenderWindow* GetWindow( ) const;
78       vtkRenderer* GetRenderer( ) const;
79
80       void Start( );
81
82     protected:
83       vtkSmartPointer< vtkImageData > m_Image;
84       vtkSmartPointer< vtkOutlineSource > m_Outline;
85       vtkSmartPointer< vtkPolyDataMapper > m_OutlineMapper;
86       vtkSmartPointer< vtkActor > m_OutlineActor;
87       vtkSmartPointer< vtkCellPicker > m_Picker;
88       vtkSmartPointer< vtkImagePlaneWidget > m_WidgetX;
89       vtkSmartPointer< vtkImagePlaneWidget > m_WidgetY;
90       vtkSmartPointer< vtkImagePlaneWidget > m_WidgetZ;
91       vtkSmartPointer< vtkRenderer > m_Renderer;
92       vtkSmartPointer< vtkRenderWindow > m_Window;
93       vtkSmartPointer< vtkRenderWindowInteractor > m_Interactor;
94
95       std::vector< vtkSmartPointer< vtkPolyData > > m_PolyDatas;
96       std::vector< vtkSmartPointer< vtkPolyDataMapper > > m_Mappers;
97       std::vector< vtkSmartPointer< vtkActor > > m_Actors;
98
99
100       // Create the widget and its representation
101       vtkSmartPointer<vtkPointHandleRepresentation3D> handlePointRep3D;
102       vtkSmartPointer<vtkSeedRepresentation> seedRep;
103       vtkSmartPointer<vtkSeedWidget2> seedWidget;
104
105     };
106
107   } // ecapseman
108
109 } // ecapseman
110
111 #endif // __FPA__VTK__IMAGEMPR__H__
112
113 // eof - $RCSfile$