1 /* =======================================================================
2 * @author: Leonardo Florez-Valencia
3 * @email: florez-l@javeriana.edu.co
4 * =======================================================================
7 #include <ivq/VTK/MPRViewers.h>
9 #include <ivq/VTK/InteractorStyleImage.h>
10 #include <ivq/VTK/ImageViewer.h>
12 // -------------------------------------------------------------------------
13 ivq::VTK::MPRViewers::
14 Self* ivq::VTK::MPRViewers::
17 return( new Self( ) );
20 // -------------------------------------------------------------------------
21 void ivq::VTK::MPRViewers::
24 for( unsigned int i = 0; i < 3; ++i )
25 if( this->Viewers[ i ].GetPointer( ) != NULL )
26 this->Viewers[ i ]->Render( );
29 // -------------------------------------------------------------------------
30 void ivq::VTK::MPRViewers::
31 SetInputData( vtkImageData* in )
33 bool need_to_configure = false;
34 for( unsigned int i = 0; i < 3; ++i )
35 need_to_configure |= ( this->Viewers[ i ].GetPointer( ) == NULL );
36 if( need_to_configure )
37 this->_ConfigureViews( );
38 for( unsigned int i = 0; i < 3; ++i )
40 this->Viewers[ i ]->SetInputData( in );
41 this->Viewers[ i ]->SetSliceOrientation( i );
44 for( unsigned int i = 0; i < 3; ++i )
45 for( unsigned int j = 0; j < 3; ++j )
47 this->Viewers[ i ]->GetInteractorStyle( )->
48 AddOtherViewer( this->Viewers[ j ] );
51 // -------------------------------------------------------------------------
52 vtkImageData* ivq::VTK::MPRViewers::
55 if( this->Viewers[ 0 ].GetPointer( ) != NULL )
56 return( this->Viewers[ 0 ]->GetInput( ) );
61 // -------------------------------------------------------------------------
62 void ivq::VTK::MPRViewers::
63 SetInputConnection( vtkAlgorithmOutput* input )
65 bool need_to_configure = false;
66 for( unsigned int i = 0; i < 3; ++i )
67 need_to_configure |= ( this->Viewers[ i ].GetPointer( ) == NULL );
68 if( need_to_configure )
69 this->_ConfigureViews( );
70 for( unsigned int i = 0; i < 3; ++i )
72 this->Viewers[ i ]->SetInputConnection( input );
73 this->Viewers[ i ]->SetSliceOrientation( i );
76 for( unsigned int i = 0; i < 3; ++i )
77 for( unsigned int j = 0; j < 3; ++j )
79 this->Viewers[ i ]->GetInteractorStyle( )->
80 AddOtherViewer( this->Viewers[ j ] );
83 // -------------------------------------------------------------------------
84 ivq::VTK::ImageViewer* ivq::VTK::MPRViewers::
88 return( this->Viewers[ o ].GetPointer( ) );
93 // -------------------------------------------------------------------------
94 const ivq::VTK::ImageViewer* ivq::VTK::MPRViewers::
95 GetView( int o ) const
98 return( this->Viewers[ o ].GetPointer( ) );
103 // -------------------------------------------------------------------------
104 void ivq::VTK::MPRViewers::
105 SetView( int o, ivq::VTK::ImageViewer* v )
108 this->Viewers[ o ] = v;
111 // -------------------------------------------------------------------------
112 double ivq::VTK::MPRViewers::
115 if( this->Viewers[ 0 ].GetPointer( ) != NULL )
116 return( this->Viewers[ 0 ]->GetColorWindow( ) );
121 // -------------------------------------------------------------------------
122 double ivq::VTK::MPRViewers::
125 if( this->Viewers[ 0 ].GetPointer( ) != NULL )
126 return( this->Viewers[ 0 ]->GetColorLevel( ) );
131 // -------------------------------------------------------------------------
132 void ivq::VTK::MPRViewers::
133 SetColorWindow( double s )
135 for( unsigned int i = 0; i < 3; ++i )
136 if( this->Viewers[ i ].GetPointer( ) != NULL )
137 this->Viewers[ i ]->SetColorWindow( s );
140 // -------------------------------------------------------------------------
141 void ivq::VTK::MPRViewers::
142 SetColorLevel( double s )
144 for( unsigned int i = 0; i < 3; ++i )
145 if( this->Viewers[ i ].GetPointer( ) != NULL )
146 this->Viewers[ i ]->SetColorLevel( s );
149 // -------------------------------------------------------------------------
150 void ivq::VTK::MPRViewers::
153 for( unsigned int i = 0; i < 3; ++i )
154 if( this->Viewers[ i ].GetPointer( ) != NULL )
155 this->Viewers[ i ]->ResetCamera( );
158 // -------------------------------------------------------------------------
159 void ivq::VTK::MPRViewers::
162 for( unsigned int i = 0; i < 3; ++i )
163 if( this->Viewers[ i ].GetPointer( ) != NULL )
164 this->Viewers[ i ]->Initialize( );
167 // -------------------------------------------------------------------------
168 void ivq::VTK::MPRViewers::
171 for( unsigned int i = 0; i < 3; ++i )
172 if( this->Viewers[ i ].GetPointer( ) != NULL )
173 this->Viewers[ i ]->Start( );
176 // -------------------------------------------------------------------------
177 ivq::VTK::MPRViewers::
183 // -------------------------------------------------------------------------
184 ivq::VTK::MPRViewers::
189 // -------------------------------------------------------------------------
190 void ivq::VTK::MPRViewers::
193 for( unsigned int i = 0; i < 3; ++i )
194 this->Viewers[ i ] = vtkSmartPointer< ivq::VTK::ImageViewer >::New( );