]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/MPRObjects.h
1a8135012044c928cd02d9af8171e60a879597b1
[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       void SetImage( vtkImageData* image );
38       void AddAuxiliaryImage( vtkImageData* image );
39       void ActivateInteractors( );
40
41       void ResetCamera( const int& id );
42       void ResetCameras( );
43       void Render( const int& id );
44       void RenderAll( );
45       vtkRenderer* GetXRenderer( );
46       vtkRenderer* GetYRenderer( );
47       vtkRenderer* GetZRenderer( );
48       vtkRenderer* Get3DRenderer( );
49       const vtkRenderer* GetXRenderer( ) const;
50       const vtkRenderer* GetYRenderer( ) const;
51       const vtkRenderer* GetZRenderer( ) const;
52       const vtkRenderer* Get3DRenderer( ) const;
53
54     protected:
55       MPRObjects( );
56       virtual ~MPRObjects( );
57
58     private:
59       // Purposely not implemented
60       MPRObjects( const Self& );
61       Self& operator=( const Self& );
62
63     protected:
64       // Inputs
65       vtkSmartPointer< vtkRenderWindow > m_Windows[ 4 ];
66
67       // Internal pipelines
68       vtkSmartPointer< TMPRActors >  m_MPRActors;
69       vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ];
70       vtkSmartPointer< TStyle >      m_Styles[ 3 ];
71     };
72
73   } // ecapseman
74
75 } // ecapseman
76
77 #endif //  __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__
78
79 // eof - $RCSfile$