]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/MPRObjects.h
Widget integration (step 2/6). WARNING: IT DOES NOT COMPILE YETgit shortlog !
[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       TMPRActors* GetMPRActors( );
55       const TMPRActors* GetMPRActors( ) const;
56
57     protected:
58       MPRObjects( );
59       virtual ~MPRObjects( );
60
61     private:
62       // Purposely not implemented
63       MPRObjects( const Self& );
64       Self& operator=( const Self& );
65
66     protected:
67       // Inputs
68       vtkSmartPointer< vtkRenderWindow > m_Windows[ 4 ];
69
70       // Internal pipelines
71       vtkSmartPointer< TMPRActors >  m_MPRActors;
72       vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ];
73       vtkSmartPointer< TStyle >      m_Styles[ 3 ];
74     };
75
76   } // ecapseman
77
78 } // ecapseman
79
80 #endif //  __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__
81
82 // eof - $RCSfile$