1 #include <cpExtensions/Visualization/MPRObjects.h>
4 #include <vtkImageData.h>
5 #include <vtkLookupTable.h>
7 // -------------------------------------------------------------------------
8 cpExtensions::Visualization::MPRObjects*
9 cpExtensions::Visualization::MPRObjects::
12 return( new Self( ) );
15 // -------------------------------------------------------------------------
16 void cpExtensions::Visualization::MPRObjects::
18 vtkRenderWindow* wx, vtkRenderWindow* wy,
19 vtkRenderWindow* wz, vtkRenderWindow* w3D
22 this->m_Windows[ 0 ] = wx;
23 this->m_Windows[ 1 ] = wy;
24 this->m_Windows[ 2 ] = wz;
25 this->m_Windows[ 3 ] = w3D;
27 // Prepare 2D renderers
28 for( int i = 0; i < 4; ++i )
30 if( this->m_Windows[ i ] == NULL )
32 this->m_Renderers[ i ] = NULL;
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 ] );
45 if( this->m_Windows[ 3 ] != NULL )
46 this->m_Renderers[ 3 ]->SetBackground( 0.2, 0.2, 0.2 );
49 // -------------------------------------------------------------------------
50 void cpExtensions::Visualization::MPRObjects::
51 AddImage( vtkImageData* image )
53 this->m_MPRActors->AddInputData( image );
54 this->m_MPRActors->PushActorsInto(
62 if( this->m_MPRActors->GetNumberOfImages( ) == 1 )
64 this->m_MPRActors->ResetSlices( );
65 this->ResetCameras( );
68 this->RenderAll( 1e-3 );
71 // -------------------------------------------------------------------------
72 unsigned int cpExtensions::Visualization::MPRObjects::
73 GetNumberOfImages( ) const
75 return( this->m_MPRActors->GetNumberOfImages( ) );
78 // -------------------------------------------------------------------------
79 void cpExtensions::Visualization::MPRObjects::
82 this->m_MPRActors->PopActorsFrom(
88 this->ResetCameras( );
89 this->RenderAll( 1e-3 );
92 // -------------------------------------------------------------------------
93 void cpExtensions::Visualization::MPRObjects::
94 ResetCamera( const int& id )
97 if( this->m_Windows[ id ] != NULL )
98 this->m_Renderers[ id ]->ResetCamera( );
101 // -------------------------------------------------------------------------
102 void cpExtensions::Visualization::MPRObjects::
105 for( int i = 0; i < 4; ++i )
106 if( this->m_Windows[ i ] != NULL )
107 this->m_Renderers[ i ]->ResetCamera( );
110 // -------------------------------------------------------------------------
111 void cpExtensions::Visualization::MPRObjects::
112 Render( const int& id, const double& t )
116 if( this->m_Windows[ id ] != NULL )
118 if( this->m_Renderers[ id ] != NULL )
119 this->m_Renderers[ id ]->SetAllocatedRenderTime( t );
120 this->m_Windows[ id ]->Render( );
127 // -------------------------------------------------------------------------
128 void cpExtensions::Visualization::MPRObjects::
129 RenderAll( const double& t )
131 for( int i = 0; i < 4; ++i )
133 if( this->m_Windows[ i ] != NULL )
135 if( this->m_Renderers[ i ] != NULL )
136 this->m_Renderers[ i ]->SetAllocatedRenderTime( t );
137 this->m_Windows[ i ]->Render( );
144 // -------------------------------------------------------------------------
145 vtkRenderer* cpExtensions::Visualization::MPRObjects::
148 return( this->m_Renderers[ 0 ] );
151 // -------------------------------------------------------------------------
152 vtkRenderer* cpExtensions::Visualization::MPRObjects::
155 return( this->m_Renderers[ 1 ] );
158 // -------------------------------------------------------------------------
159 vtkRenderer* cpExtensions::Visualization::MPRObjects::
162 return( this->m_Renderers[ 2 ] );
165 // -------------------------------------------------------------------------
166 vtkRenderer* cpExtensions::Visualization::MPRObjects::
169 return( this->m_Renderers[ 3 ] );
172 // -------------------------------------------------------------------------
173 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
174 GetXRenderer( ) const
176 return( this->m_Renderers[ 0 ] );
179 // -------------------------------------------------------------------------
180 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
181 GetYRenderer( ) const
183 return( this->m_Renderers[ 1 ] );
186 // -------------------------------------------------------------------------
187 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
188 GetZRenderer( ) const
190 return( this->m_Renderers[ 2 ] );
193 // -------------------------------------------------------------------------
194 const vtkRenderer* cpExtensions::Visualization::MPRObjects::
195 Get3DRenderer( ) const
197 return( this->m_Renderers[ 3 ] );
200 // -------------------------------------------------------------------------
201 cpExtensions::Visualization::
202 MPRActors* cpExtensions::Visualization::MPRObjects::
205 return( this->m_MPRActors );
208 // -------------------------------------------------------------------------
209 const cpExtensions::Visualization::
210 MPRActors* cpExtensions::Visualization::MPRObjects::
211 GetMPRActors( ) const
213 return( this->m_MPRActors );
216 // -------------------------------------------------------------------------
217 double cpExtensions::Visualization::MPRObjects::
220 return( this->m_MPRActors->GetWindow( ) );
223 // -------------------------------------------------------------------------
224 double cpExtensions::Visualization::MPRObjects::
227 return( this->m_MPRActors->GetLevel( ) );
230 // -------------------------------------------------------------------------
231 cpExtensions::Visualization::MPRObjects::
236 this->m_MPRActors = vtkSmartPointer< MPRActors >::New( );
239 // -------------------------------------------------------------------------
240 cpExtensions::Visualization::MPRObjects::