--- /dev/null
+#include <cpExtensions/Visualization/MPR3DActors.h>
+#include <cpExtensions/Visualization/ImageSliceActors.h>
+#include <cpExtensions/Visualization/LUTImageActor.h>
+#include <cpExtensions/Visualization/WindowLevelImageActor.h>
+#include <vtkActor.h>
+#include <vtkImageProperty.h>
+#include <vtkPolyData.h>
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::MPR3DActors::
+Self* cpExtensions::Visualization::MPR3DActors::
+New( )
+{
+ return( new Self( ) );
+}
+
+// -------------------------------------------------------------------------
+vtkImageData* cpExtensions::Visualization::MPR3DActors::
+GetImage( )
+{
+ return( this->m_Slices[ 0 ]->GetImage( ) );
+}
+
+// -------------------------------------------------------------------------
+const vtkImageData* cpExtensions::Visualization::MPR3DActors::
+GetImage( ) const
+{
+ return( this->m_Slices[ 0 ]->GetImage( ) );
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::
+WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
+GetWindowLevelImageActor( int o )
+{
+ return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
+}
+
+// -------------------------------------------------------------------------
+const cpExtensions::Visualization::
+WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
+GetWindowLevelImageActor( int o ) const
+{
+ return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::
+LUTImageActor* cpExtensions::Visualization::MPR3DActors::
+GetLUTImageActor( int o )
+{
+ return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
+}
+
+// -------------------------------------------------------------------------
+const cpExtensions::Visualization::
+LUTImageActor* cpExtensions::Visualization::MPR3DActors::
+GetLUTImageActor( int o ) const
+{
+ return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::
+ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
+GetImageOutlineActor( int o )
+{
+ return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
+}
+
+// -------------------------------------------------------------------------
+const cpExtensions::Visualization::
+ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
+GetImageOutlineActor( int o ) const
+{
+ return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
+}
+
+// -------------------------------------------------------------------------
+int cpExtensions::Visualization::MPR3DActors::
+GetSliceNumber( int o ) const
+{
+ return( this->m_Slices[ o % 3 ]->GetSliceNumber( ) );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetImage( vtkImageData* image )
+{
+ this->RemoveAllItems( );
+ for( int i = 0; i < 3; ++i )
+ {
+ this->m_Slices[ i ]->SetImage( image, i );
+ this->m_Slices[ i ]->InitTraversal( );
+ while( vtkProp* p = this->m_Slices[ i ]->GetNextProp( ) )
+ this->AddItem( p );
+
+ } // rof
+}
+
+// -------------------------------------------------------------------------
+unsigned int cpExtensions::Visualization::MPR3DActors::
+AddLUTImage( vtkImageData* image )
+{
+ unsigned int res = 0;
+ for( int i = 0; i < 3; ++i )
+ {
+ res = this->m_Slices[ i ]->AddLUTImage( image );
+ this->AddItem( this->m_Slices[ i ]->GetLUTImageActor( ) );
+
+ } // rof
+ return( res );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetSliceNumber( int o, int s )
+{
+ this->m_Slices[ o % 3 ]->SetSliceNumber( s );
+}
+
+// -------------------------------------------------------------------------
+vtkActor* cpExtensions::Visualization::MPR3DActors::
+AddMesh( vtkPolyData* mesh )
+{
+ TMeshActor actor;
+ actor.SetMesh( mesh );
+ this->m_Meshes[ mesh ] = actor;
+ this->AddItem( actor.GetActor( ) );
+ return( actor.GetActor( ) );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetScalarRange( double r[ 2 ] )
+{
+ this->m_Slices[ 0 ]->GetWindowLevelImageActor( )->SetRange( r );
+ this->m_Slices[ 1 ]->GetWindowLevelImageActor( )->SetRange( r );
+ this->m_Slices[ 2 ]->GetWindowLevelImageActor( )->SetRange( r );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetWindowLevel( double wl[ 2 ] )
+{
+ this->m_Slices[ 0 ]->GetWindowLevelImageActor( )->SetWindowLevel( wl );
+ this->m_Slices[ 1 ]->GetWindowLevelImageActor( )->SetWindowLevel( wl );
+ this->m_Slices[ 2 ]->GetWindowLevelImageActor( )->SetWindowLevel( wl );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetImageOpacity( double o )
+{
+ this->m_Slices[ 0 ]->GetWindowLevelImageActor( )->
+ GetProperty( )->SetOpacity( o );
+ this->m_Slices[ 1 ]->GetWindowLevelImageActor( )->
+ GetProperty( )->SetOpacity( o );
+ this->m_Slices[ 2 ]->GetWindowLevelImageActor( )->
+ GetProperty( )->SetOpacity( o );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPR3DActors::
+SetImageInterpolation( unsigned char i )
+{
+ // TODO
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::MPR3DActors::
+MPR3DActors( )
+ : Superclass( )
+{
+ this->m_Slices[ 0 ] = vtkSmartPointer< ImageSliceActors >::New( );
+ this->m_Slices[ 1 ] = vtkSmartPointer< ImageSliceActors >::New( );
+ this->m_Slices[ 2 ] = vtkSmartPointer< ImageSliceActors >::New( );
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::MPR3DActors::
+~MPR3DActors( )
+{
+}
+
+// eof - $RCSfile$