]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/VTK/ImageMPR.h
Skeletonization debugged
[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 <vtkHandleWidget.h>
9 #include <vtkImageData.h>
10 #include <vtkImagePlaneWidget.h>
11 #include <vtkOutlineSource.h>
12 #include <vtkPointHandleRepresentation3D.h>
13 #include <vtkPolyDataMapper.h>
14 #include <vtkProperty.h>
15 #include <vtkRenderer.h>
16 #include <vtkRendererCollection.h>
17 #include <vtkRenderWindow.h>
18 #include <vtkRenderWindowInteractor.h>
19 #include <vtkSeedRepresentation.h>
20 #include <vtkSeedWidget.h>
21 #include <vtkSmartPointer.h>
22 #include <vtkSphereSource.h>
23
24 namespace fpa
25 {
26   namespace VTK
27   {
28     /**
29      */
30     class FrontAlgorithms_EXPORT ImageMPR
31     {
32     public:
33       ImageMPR( );
34       virtual ~ImageMPR( );
35
36       void SetImage( vtkImageData* image );
37       void SetBackground( double r, double g, double b );
38       void SetSize( unsigned int w, unsigned int h );
39
40       void AddPolyData( vtkPolyData* pd, double opacity = double( 1 ) );
41       void AddPolyData(
42         vtkPolyData* pd,
43         double r, double g, double b, double opacity = double( 1 )
44         );
45
46       unsigned int GetNumberOfSeeds( ) const;
47       void GetSeed( int n, double* s ) const;
48
49       vtkRenderWindow* GetWindow( ) const;
50       vtkRenderer* GetRenderer( ) const;
51
52       void Start( );
53       void Render( );
54
55     protected:
56       vtkSmartPointer< vtkImageData >              m_Image;
57       vtkSmartPointer< vtkOutlineSource >          m_Outline;
58       vtkSmartPointer< vtkPolyDataMapper >         m_OutlineMapper;
59       vtkSmartPointer< vtkActor >                  m_OutlineActor;
60       vtkSmartPointer< vtkCellPicker >             m_Picker;
61       vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetX;
62       vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetY;
63       vtkSmartPointer< vtkImagePlaneWidget >       m_WidgetZ;
64       vtkSmartPointer< vtkRenderer >               m_Renderer;
65       vtkSmartPointer< vtkRenderWindow >           m_Window;
66       vtkSmartPointer< vtkRenderWindowInteractor > m_Interactor;
67
68       std::vector< vtkSmartPointer< vtkPolyData > >       m_PolyDatas;
69       std::vector< vtkSmartPointer< vtkPolyDataMapper > > m_Mappers;
70       std::vector< vtkSmartPointer< vtkActor > >          m_Actors;
71
72       // Create the widget and its representation
73       vtkSmartPointer< vtkPointHandleRepresentation3D >
74         m_SeedHandleRepresentation;
75       vtkSmartPointer< vtkSeedRepresentation > m_SeedRepresentation;
76       vtkSmartPointer< vtkSeedWidget >         m_SeedWidget;
77     };
78
79   } // ecapseman
80
81 } // ecapseman
82
83 #endif // __FPA__VTK__IMAGEMPR__H__
84
85 // eof - $RCSfile$