]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/MPR3DActors.cxx
Architecture updated.
[cpPlugins.git] / lib / cpExtensions / Visualization / MPR3DActors.cxx
1 #include <cpExtensions/Visualization/MPR3DActors.h>
2 #include <cpExtensions/Visualization/ImageSliceActors.h>
3 #include <cpExtensions/Visualization/LUTImageActor.h>
4 #include <cpExtensions/Visualization/WindowLevelImageActor.h>
5 #include <vtkActor.h>
6 #include <vtkPolyData.h>
7
8 // -------------------------------------------------------------------------
9 cpExtensions::Visualization::MPR3DActors::
10 Self* cpExtensions::Visualization::MPR3DActors::
11 New( )
12 {
13   return( new Self( ) );
14 }
15
16 // -------------------------------------------------------------------------
17 vtkImageData* cpExtensions::Visualization::MPR3DActors::
18 GetImage( )
19 {
20   return( this->m_Slices[ 0 ]->GetImage( ) );
21 }
22
23 // -------------------------------------------------------------------------
24 const vtkImageData* cpExtensions::Visualization::MPR3DActors::
25 GetImage( ) const
26 {
27   return( this->m_Slices[ 0 ]->GetImage( ) );
28 }
29
30 // -------------------------------------------------------------------------
31 cpExtensions::Visualization::
32 WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
33 GetWindowLevelImageActor( int o )
34 {
35   return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
36 }
37
38 // -------------------------------------------------------------------------
39 const cpExtensions::Visualization::
40 WindowLevelImageActor* cpExtensions::Visualization::MPR3DActors::
41 GetWindowLevelImageActor( int o ) const
42 {
43   return( this->m_Slices[ o % 3 ]->GetWindowLevelImageActor( ) );
44 }
45
46 // -------------------------------------------------------------------------
47 cpExtensions::Visualization::
48 LUTImageActor* cpExtensions::Visualization::MPR3DActors::
49 GetLUTImageActor( int o )
50 {
51   return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
52 }
53
54 // -------------------------------------------------------------------------
55 const cpExtensions::Visualization::
56 LUTImageActor* cpExtensions::Visualization::MPR3DActors::
57 GetLUTImageActor( int o ) const
58 {
59   return( this->m_Slices[ o % 3 ]->GetLUTImageActor( ) );
60 }
61
62 // -------------------------------------------------------------------------
63 cpExtensions::Visualization::
64 ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
65 GetImageOutlineActor( int o )
66 {
67   return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
68 }
69
70 // -------------------------------------------------------------------------
71 const cpExtensions::Visualization::
72 ImageOutlineActor* cpExtensions::Visualization::MPR3DActors::
73 GetImageOutlineActor( int o ) const
74 {
75   return( this->m_Slices[ o % 3 ]->GetImageOutlineActor( ) );
76 }
77
78 // -------------------------------------------------------------------------
79 int cpExtensions::Visualization::MPR3DActors::
80 GetSliceNumber( int o ) const
81 {
82   return( this->m_Slices[ o % 3 ]->GetSliceNumber( ) );
83 }
84
85 // -------------------------------------------------------------------------
86 void cpExtensions::Visualization::MPR3DActors::
87 SetImage( vtkImageData* image )
88 {
89   this->RemoveAllItems( );
90   for( int i = 0; i < 3; ++i )
91   {
92     this->m_Slices[ i ]->SetImage( image, i );
93     this->m_Slices[ i ]->InitTraversal( );
94     while( vtkProp* p = this->m_Slices[ i ]->GetNextProp( ) )
95       this->AddItem( p );
96     
97   } // rof
98 }
99
100 // -------------------------------------------------------------------------
101 unsigned int cpExtensions::Visualization::MPR3DActors::
102 AddLUTImage( vtkImageData* image )
103 {
104   for( int i = 0; i < 3; ++i )
105   {
106     this->m_Slices[ i ]->AddLUTImage( image );
107     this->AddItem( this->m_Slices[ i ]->GetLUTImageActor( ) );
108
109   } // rof
110 }
111
112 // -------------------------------------------------------------------------
113 void cpExtensions::Visualization::MPR3DActors::
114 SetSliceNumber( int o, int s )
115 {
116   this->m_Slices[ o % 3 ]->SetSliceNumber( s );
117 }
118
119 // -------------------------------------------------------------------------
120 vtkActor* cpExtensions::Visualization::MPR3DActors::
121 AddMesh( vtkPolyData* mesh )
122 {
123   TMeshActor actor;
124   actor.SetMesh( mesh );
125   this->m_Meshes[ mesh ] = actor;
126   this->AddItem( actor.GetActor( ) );
127   return( actor.GetActor( ) );
128 }
129
130 // -------------------------------------------------------------------------
131 cpExtensions::Visualization::MPR3DActors::
132 MPR3DActors( )
133   : Superclass( )
134 {
135   this->m_Slices[ 0 ] = vtkSmartPointer< ImageSliceActors >::New( );
136   this->m_Slices[ 1 ] = vtkSmartPointer< ImageSliceActors >::New( );
137   this->m_Slices[ 2 ] = vtkSmartPointer< ImageSliceActors >::New( );
138 }
139
140 // -------------------------------------------------------------------------
141 cpExtensions::Visualization::MPR3DActors::
142 ~MPR3DActors( )
143 {
144 }
145
146 // eof - $RCSfile$