]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/MPRObjects.cxx
Parameters are now part of the pipeline update process
[cpPlugins.git] / lib / cpExtensions / Visualization / MPRObjects.cxx
1 #include <cpExtensions/Visualization/MPRObjects.h>
2
3 #include <cmath>
4 #include <vtkImageData.h>
5 #include <vtkLookupTable.h>
6
7 // -------------------------------------------------------------------------
8 cpExtensions::Visualization::MPRObjects*
9 cpExtensions::Visualization::MPRObjects::
10 New( )
11 {
12   return( new Self( ) );
13 }
14
15 // -------------------------------------------------------------------------
16 void cpExtensions::Visualization::MPRObjects::
17 SetRenderWindows(
18   vtkRenderWindow* wx, vtkRenderWindow* wy,
19   vtkRenderWindow* wz, vtkRenderWindow* w3D
20   )
21 {
22   this->m_Windows[ 0 ] = wx;
23   this->m_Windows[ 1 ] = wy;
24   this->m_Windows[ 2 ] = wz;
25   this->m_Windows[ 3 ] = w3D;
26
27   // Prepare 2D renderers
28   for( int i = 0; i < 4; ++i )
29   {
30     if( this->m_Windows[ i ] == NULL )
31     {
32       this->m_Renderers[ i ] = NULL;
33       continue;
34
35     } // fi
36
37     // Create renderer, if render window exists
38     this->m_Renderers[ i ] = vtkSmartPointer< vtkRenderer >::New( );
39     this->m_Renderers[ i ]->SetBackground( 0.1, 0.3, 0.8 );
40     this->m_Windows[ i ]->AddRenderer( this->m_Renderers[ i ] );
41
42   } // rof
43
44   // Create 3D renderer
45   if( this->m_Windows[ 3 ] != NULL )
46     this->m_Renderers[ 3 ]->SetBackground( 0.2, 0.2, 0.2 );
47 }
48
49 // -------------------------------------------------------------------------
50 void cpExtensions::Visualization::MPRObjects::
51 AddImage( vtkImageData* image )
52 {
53   this->m_MPRActors->AddInputData( image );
54   this->m_MPRActors->PushActorsInto(
55     this->m_Windows[ 0 ],
56     this->m_Windows[ 1 ],
57     this->m_Windows[ 2 ],
58     this->m_Windows[ 3 ]
59     );
60
61   // First rendering
62   if( this->m_MPRActors->GetNumberOfImages( ) == 1 )
63   {
64     this->m_MPRActors->ResetSlices( );
65     this->ResetCameras( );
66
67   } // fi
68   this->RenderAll( );
69 }
70
71 // -------------------------------------------------------------------------
72 void cpExtensions::Visualization::MPRObjects::
73 ClearAll( )
74 {
75   this->m_MPRActors->PopActorsFrom(
76     this->m_Windows[ 0 ],
77     this->m_Windows[ 1 ],
78     this->m_Windows[ 2 ],
79     this->m_Windows[ 3 ]
80     );
81   this->ResetCameras( );
82   this->RenderAll( );
83 }
84
85 // -------------------------------------------------------------------------
86 void cpExtensions::Visualization::MPRObjects::
87 ResetCamera( const int& id )
88 {
89   if( id < 4 )
90     if( this->m_Windows[ id ] != NULL )
91       this->m_Renderers[ id ]->ResetCamera( );
92 }
93
94 // -------------------------------------------------------------------------
95 void cpExtensions::Visualization::MPRObjects::
96 ResetCameras( )
97 {
98   for( int i = 0; i < 4; ++i )
99     if( this->m_Windows[ i ] != NULL )
100       this->m_Renderers[ i ]->ResetCamera( );
101 }
102
103 // -------------------------------------------------------------------------
104 void cpExtensions::Visualization::MPRObjects::
105 Render( const int& id )
106 {
107   if( id < 4 )
108     if( this->m_Windows[ id ] != NULL )
109       this->m_Windows[ id ]->Render( );
110 }
111
112 // -------------------------------------------------------------------------
113 void cpExtensions::Visualization::MPRObjects::
114 RenderAll( )
115 {
116   for( int i = 0; i < 4; ++i )
117     if( this->m_Windows[ i ] != NULL )
118       this->m_Windows[ i ]->Render( );
119 }
120
121 // -------------------------------------------------------------------------
122 vtkRenderer* cpExtensions::Visualization::MPRObjects::
123 GetXRenderer( )
124 {
125   return( this->m_Renderers[ 0 ] );
126 }
127
128 // -------------------------------------------------------------------------
129 vtkRenderer* cpExtensions::Visualization::MPRObjects::
130 GetYRenderer( )
131 {
132   return( this->m_Renderers[ 1 ] );
133 }
134
135 // -------------------------------------------------------------------------
136 vtkRenderer* cpExtensions::Visualization::MPRObjects::
137 GetZRenderer( )
138 {
139   return( this->m_Renderers[ 2 ] );
140 }
141
142 // -------------------------------------------------------------------------
143 vtkRenderer* cpExtensions::Visualization::MPRObjects::
144 Get3DRenderer( )
145 {
146   return( this->m_Renderers[ 3 ] );
147 }
148
149 // -------------------------------------------------------------------------
150 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
151 GetXRenderer( ) const
152 {
153   return( this->m_Renderers[ 0 ] );
154 }
155
156 // -------------------------------------------------------------------------
157 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
158 GetYRenderer( ) const
159 {
160   return( this->m_Renderers[ 1 ] );
161 }
162
163 // -------------------------------------------------------------------------
164 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
165 GetZRenderer( ) const
166 {
167   return( this->m_Renderers[ 2 ] );
168 }
169
170 // -------------------------------------------------------------------------
171 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
172 Get3DRenderer( ) const
173 {
174   return( this->m_Renderers[ 3 ] );
175 }
176
177 // -------------------------------------------------------------------------
178 cpExtensions::Visualization::MPRObjects::
179 TMPRActors* cpExtensions::Visualization::MPRObjects::
180 GetMPRActors( )
181 {
182   return( this->m_MPRActors );
183 }
184
185 // -------------------------------------------------------------------------
186 const cpExtensions::Visualization::MPRObjects::
187 TMPRActors* cpExtensions::Visualization::MPRObjects::
188 GetMPRActors( ) const
189 {
190   return( this->m_MPRActors );
191 }
192
193 // -------------------------------------------------------------------------
194 cpExtensions::Visualization::MPRObjects::
195 MPRObjects( )
196   : vtkObject( )
197 {
198   // Prepare actors
199   this->m_MPRActors = vtkSmartPointer< TMPRActors >::New( );
200 }
201
202 // -------------------------------------------------------------------------
203 cpExtensions::Visualization::MPRObjects::
204 ~MPRObjects( )
205 {
206 }
207
208 // eof - $RCSfile$