]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/MPRObjects.h
84db5d29cff2ce045b08a3ed5fde2555113a05a5
[cpPlugins.git] / lib / cpExtensions / Visualization / MPRObjects.h
1 #ifndef __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__
2 #define __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__
3
4 #include <cpExtensions/cpExtensions_Export.h>
5 #include <cpExtensions/Visualization/MPRActors.h>
6 #include <cpExtensions/Visualization/ImageInteractorStyle.h>
7
8 #include <vtkObject.h>
9 #include <vtkRenderer.h>
10 #include <vtkRenderWindow.h>
11
12 namespace cpExtensions
13 {
14   namespace Visualization
15   {
16     /**
17      */
18     class cpExtensions_EXPORT MPRObjects
19       : public vtkObject
20     {
21     public:
22       typedef MPRObjects Self;
23       typedef cpExtensions::Visualization::MPRActors            TMPRActors;
24       typedef cpExtensions::Visualization::ImageInteractorStyle TStyle;
25
26     public:
27       vtkTypeMacro( MPRObjects, vtkObject );
28
29     public:
30       // Creation
31       static MPRObjects* New( );
32
33       void SetRenderWindows(
34         vtkRenderWindow* wx, vtkRenderWindow* wy,
35         vtkRenderWindow* wz, vtkRenderWindow* w3D
36         );
37
38       void SetImage( vtkImageData* image );
39       void ResetCamera( const int& id );
40       void ResetCameras( );
41       void Render( const int& id );
42       void RenderAll( );
43       vtkRenderer* GetXRenderer( );
44       vtkRenderer* GetYRenderer( );
45       vtkRenderer* GetZRenderer( );
46       vtkRenderer* Get3DRenderer( );
47       const vtkRenderer* GetXRenderer( ) const;
48       const vtkRenderer* GetYRenderer( ) const;
49       const vtkRenderer* GetZRenderer( ) const;
50       const vtkRenderer* Get3DRenderer( ) const;
51
52     protected:
53       MPRObjects( );
54       virtual ~MPRObjects( );
55
56     private:
57       // Purposely not implemented
58       MPRObjects( const Self& );
59       Self& operator=( const Self& );
60
61     protected:
62       // Inputs
63       vtkSmartPointer< vtkRenderWindow > m_Windows[ 4 ];
64
65       // Internal pipelines
66       vtkSmartPointer< TMPRActors >  m_MPRActors;
67       vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ];
68       vtkSmartPointer< TStyle >      m_Styles[ 3 ];
69     };
70
71   } // ecapseman
72
73 } // ecapseman
74
75 #endif //  __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__
76
77 // eof - $RCSfile$