1 #include <cpExtensions/Visualization/MPR3DActors.h>
2 #include <cpExtensions/Visualization/ImageSliceActors.h>
3 #include <cpExtensions/Visualization/LUTImageActor.h>
4 #include <cpExtensions/Visualization/WindowLevelImageActor.h>
6 #include <vtkPolyData.h>
8 // -------------------------------------------------------------------------
9 cpExtensions::Visualization::MPR3DActors::
10 Self* cpExtensions::Visualization::MPR3DActors::
13 return( new Self( ) );
16 // -------------------------------------------------------------------------
17 vtkImageData* cpExtensions::Visualization::MPR3DActors::
20 return( this->m_Slices[ 0 ]->GetImage( ) );
23 // -------------------------------------------------------------------------
24 const vtkImageData* cpExtensions::Visualization::MPR3DActors::
27 return( this->m_Slices[ 0 ]->GetImage( ) );
30 // -------------------------------------------------------------------------
31 cpExtensions::Visualization::
32 WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
33 GetWindowLevelImageActor( int o )
35 return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
38 // -------------------------------------------------------------------------
39 const cpExtensions::Visualization::
40 WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
41 GetWindowLevelImageActor( int o ) const
43 return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
46 // -------------------------------------------------------------------------
47 cpExtensions::Visualization::
48 LUTImageActor* cpExtensions::Visualization::MPR3DActors::
49 GetLUTImageActor( int o )
51 return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
54 // -------------------------------------------------------------------------
55 const cpExtensions::Visualization::
56 LUTImageActor* cpExtensions::Visualization::MPR3DActors::
57 GetLUTImageActor( int o ) const
59 return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
62 // -------------------------------------------------------------------------
63 cpExtensions::Visualization::
64 ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
65 GetImageOutlineActor( int o )
67 return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
70 // -------------------------------------------------------------------------
71 const cpExtensions::Visualization::
72 ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
73 GetImageOutlineActor( int o ) const
75 return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
78 // -------------------------------------------------------------------------
79 int cpExtensions::Visualization::MPR3DActors::
80 GetSliceNumber( int o ) const
82 return( this->m_Slices[ o % 3 ]->GetSliceNumber( ) );
85 // -------------------------------------------------------------------------
86 void cpExtensions::Visualization::MPR3DActors::
87 SetImage( vtkImageData* image )
89 this->RemoveAllItems( );
90 for( int i = 0; i < 3; ++i )
92 this->m_Slices[ i ]->SetImage( image, i );
93 this->m_Slices[ i ]->InitTraversal( );
94 while( vtkProp* p = this->m_Slices[ i ]->GetNextProp( ) )
100 // -------------------------------------------------------------------------
101 unsigned int cpExtensions::Visualization::MPR3DActors::
102 AddLUTImage( vtkImageData* image )
104 for( int i = 0; i < 3; ++i )
106 this->m_Slices[ i ]->AddLUTImage( image );
107 this->AddItem( this->m_Slices[ i ]->GetLUTImageActor( ) );
112 // -------------------------------------------------------------------------
113 void cpExtensions::Visualization::MPR3DActors::
114 SetSliceNumber( int o, int s )
116 this->m_Slices[ o % 3 ]->SetSliceNumber( s );
119 // -------------------------------------------------------------------------
120 vtkActor* cpExtensions::Visualization::MPR3DActors::
121 AddMesh( vtkPolyData* mesh )
124 actor.SetMesh( mesh );
125 this->m_Meshes[ mesh ] = actor;
126 this->AddItem( actor.GetActor( ) );
127 return( actor.GetActor( ) );
130 // -------------------------------------------------------------------------
131 cpExtensions::Visualization::MPR3DActors::
135 this->m_Slices[ 0 ] = vtkSmartPointer< ImageSliceActors >::New( );
136 this->m_Slices[ 1 ] = vtkSmartPointer< ImageSliceActors >::New( );
137 this->m_Slices[ 2 ] = vtkSmartPointer< ImageSliceActors >::New( );
140 // -------------------------------------------------------------------------
141 cpExtensions::Visualization::MPR3DActors::