]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/Image.cxx
b0d18b001a0557da7a391fd2f7f2f2d992cbf878
[cpPlugins.git] / lib / cpPlugins / Interface / Image.cxx
1 #include <cpPlugins/Interface/Image.h>
2
3 /* TODO
4    #include <complex>
5    #include <vtkImageData.h>
6
7    #define ITK_MANUAL_INSTANTIATION
8    #include <itkImage.h>
9    #include <itkImageToVTKImageFilter.h>
10
11    #include <itkCovariantVector.h>
12    #include <itkDiffusionTensor3D.h>
13    #include <itkPoint.h>
14    #include <itkRGBPixel.h>
15    #include <itkRGBAPixel.h>
16    #include <itkSymmetricSecondRankTensor.h>
17    #include <itkVector.h>
18 */
19
20 // -------------------------------------------------------------------------
21 /* TODO
22    void cpPlugins::Interface::Image::
23    SetITKDataObject( itk::DataObject* o )
24    {
25    bool r;
26    if( dynamic_cast< itk::ImageBase< 1 >* >( o ) != NULL )
27    {
28    cpPlugins_Image_Array_Demangle(
29    itk::Vector, float, 1, 1, o, _Type, r
30    );
31    else cpPlugins_Image_Array_Demangle(
32    itk::Vector, double, 1, 1, o, _Type, r
33    );
34    else cpPlugins_Image_Array_Demangle(
35    itk::Point, float, 1, 1, o, _Type, r
36    );
37    else cpPlugins_Image_Array_Demangle(
38    itk::Point, double, 1, 1, o, _Type, r
39    );
40    else cpPlugins_Image_Array_Demangle(
41    itk::CovariantVector, float, 1, 1, o, _Type, r
42    );
43    else cpPlugins_Image_Array_Demangle(
44    itk::CovariantVector, double, 1, 1, o, _Type, r
45    );
46    else cpPlugins_Image_Array_Demangle(
47    itk::SymmetricSecondRankTensor, float, 1, 1, o, _Type, r
48    );
49    else cpPlugins_Image_Array_Demangle(
50    itk::SymmetricSecondRankTensor, double, 1, 1, o, _Type, r
51    );
52    else r = this->_Dim< 1 >( o );
53    }
54    else if( dynamic_cast< itk::ImageBase< 2 >* >( o ) != NULL )
55    {
56    cpPlugins_Image_Demangle(
57    itk::RGBPixel< char >, 2, o, _Type, r
58    );
59    else cpPlugins_Image_Demangle(
60    itk::RGBPixel< short >, 2, o, _Type, r
61    );
62    else cpPlugins_Image_Demangle(
63    itk::RGBPixel< unsigned char >, 2, o, _Type, r
64    );
65    else cpPlugins_Image_Demangle(
66    itk::RGBPixel< unsigned short >, 2, o, _Type, r
67    );
68    else cpPlugins_Image_Demangle(
69    itk::RGBAPixel< char >, 2, o, _Type, r
70    );
71    else cpPlugins_Image_Demangle(
72    itk::RGBAPixel< short >, 2, o, _Type, r
73    );
74    else cpPlugins_Image_Demangle(
75    itk::RGBAPixel< unsigned char >, 2, o, _Type, r
76    );
77    else cpPlugins_Image_Demangle(
78    itk::RGBAPixel< unsigned short >, 2, o, _Type, r
79    );
80    else cpPlugins_Image_Array_Demangle(
81    itk::Vector, float, 2, 2, o, _Type, r
82    );
83    else cpPlugins_Image_Array_Demangle(
84    itk::Vector, double, 2, 2, o, _Type, r
85    );
86    else cpPlugins_Image_Array_Demangle(
87    itk::Point, float, 2, 2, o, _Type, r
88    );
89    else cpPlugins_Image_Array_Demangle(
90    itk::Point, double, 2, 2, o, _Type, r
91    );
92    else cpPlugins_Image_Array_Demangle(
93    itk::CovariantVector, float, 2, 2, o, _Type, r
94    );
95    else cpPlugins_Image_Array_Demangle(
96    itk::CovariantVector, double, 2, 2, o, _Type, r
97    );
98    else cpPlugins_Image_Array_Demangle(
99    itk::SymmetricSecondRankTensor, float, 2, 2, o, _Type, r
100    );
101    else cpPlugins_Image_Array_Demangle(
102    itk::SymmetricSecondRankTensor, double, 2, 2, o, _Type, r
103    );
104    else r = this->_Dim< 2 >( o );
105    }
106    else if( dynamic_cast< itk::ImageBase< 3 >* >( o ) != NULL )
107    {
108    cpPlugins_Image_Demangle(
109    itk::RGBPixel< char >, 3, o, _Type, r
110    );
111    else cpPlugins_Image_Demangle(
112    itk::RGBPixel< short >, 3, o, _Type, r
113    );
114    else cpPlugins_Image_Demangle(
115    itk::RGBPixel< unsigned char >, 3, o, _Type, r
116    );
117    else cpPlugins_Image_Demangle(
118    itk::RGBPixel< unsigned short >, 3, o, _Type, r
119    );
120    else cpPlugins_Image_Demangle(
121    itk::RGBAPixel< char >, 3, o, _Type, r
122    );
123    else cpPlugins_Image_Demangle(
124    itk::RGBAPixel< short >, 3, o, _Type, r
125    );
126    else cpPlugins_Image_Demangle(
127    itk::RGBAPixel< unsigned char >, 3, o, _Type, r
128    );
129    else cpPlugins_Image_Demangle(
130    itk::RGBAPixel< unsigned short >, 3, o, _Type, r
131    );
132    else cpPlugins_Image_Array_Demangle(
133    itk::Vector, float, 3, 3, o, _Type, r
134    );
135    else cpPlugins_Image_Array_Demangle(
136    itk::Vector, double, 3, 3, o, _Type, r
137    );
138    else cpPlugins_Image_Array_Demangle(
139    itk::Point, float, 3, 3, o, _Type, r
140    );
141    else cpPlugins_Image_Array_Demangle(
142    itk::Point, double, 3, 3, o, _Type, r
143    );
144    else cpPlugins_Image_Array_Demangle(
145    itk::CovariantVector, float, 3, 3, o, _Type, r
146    );
147    else cpPlugins_Image_Array_Demangle(
148    itk::CovariantVector, double, 3, 3, o, _Type, r
149    );
150    else cpPlugins_Image_Array_Demangle(
151    itk::SymmetricSecondRankTensor, float, 3, 3, o, _Type, r
152    );
153    else cpPlugins_Image_Array_Demangle(
154    itk::SymmetricSecondRankTensor, double, 3, 3, o, _Type, r
155    );
156    else cpPlugins_Image_Demangle(
157    itk::DiffusionTensor3D< float >, 3, o, _Type, r
158    );
159    else cpPlugins_Image_Demangle(
160    itk::DiffusionTensor3D< double >, 3, o, _Type, r
161    );
162    else r = this->_Dim< 3 >( o );
163    }
164    else if( dynamic_cast< itk::ImageBase< 4 >* >( o ) != NULL )
165    {
166    this->m_ITKObject = o;
167    this->m_VTKObject = NULL;
168    this->m_ITKvVTKConnection = NULL;
169
170    } // fi
171    }
172 */
173
174 // -------------------------------------------------------------------------
175 void cpPlugins::Interface::Image::
176 SetVTKImageData( vtkImageData* image )
177 {
178   // this->m_VTKObject = image;
179   std::cerr << "Image: TODO this!!!!" << std::endl;
180   std::exit( 1 );
181 }
182
183 // -------------------------------------------------------------------------
184 vtkImageData* cpPlugins::Interface::Image::
185 GetVTKImageData( )
186 {
187   return(
188     dynamic_cast< vtkImageData* >( this->m_VTKObject.GetPointer( ) )
189     );
190 }
191
192 // -------------------------------------------------------------------------
193 const vtkImageData* cpPlugins::Interface::Image::
194 GetVTKImageData( ) const
195 {
196   return(
197     dynamic_cast< const vtkImageData* >( this->m_VTKObject.GetPointer( ) )
198     );
199 }
200
201 // -------------------------------------------------------------------------
202 cpPlugins::Interface::Image::
203 Image( )
204   : Superclass( )
205 {
206   this->m_ClassName = "cpPlugins::Interface::Image";
207   this->m_ClassCategory = "BasicObject";
208 }
209
210 // -------------------------------------------------------------------------
211 cpPlugins::Interface::Image::
212 ~Image( )
213 {
214 }
215
216 // -------------------------------------------------------------------------
217 /* TODO
218    template< unsigned int D >
219    bool cpPlugins::Interface::Image::
220    _Dim( itk::DataObject* o )
221    {
222    bool r;
223    cpPlugins_Image_Demangle(
224    char, D, o, _Type, r
225    );
226    else cpPlugins_Image_Demangle(
227    short, D, o, _Type, r
228    );
229    else cpPlugins_Image_Demangle(
230    int, D, o, _Type, r
231    );
232    else cpPlugins_Image_Demangle(
233    long, D, o, _Type, r
234    );
235    else cpPlugins_Image_Demangle(
236    unsigned char, D, o, _Type, r
237    );
238    else cpPlugins_Image_Demangle(
239    unsigned short, D, o, _Type, r
240    );
241    else cpPlugins_Image_Demangle(
242    unsigned int, D, o, _Type, r
243    );
244    else cpPlugins_Image_Demangle(
245    unsigned long, D, o, _Type, r
246    );
247    else cpPlugins_Image_Demangle(
248    float, D, o, _Type, r
249    );
250    else cpPlugins_Image_Demangle(
251    double, D, o, _Type, r
252    );
253    else
254    {
255    this->m_ITKObject = o;
256    this->m_VTKObject = NULL;
257    this->m_ITKvVTKConnection = NULL;
258
259    } // fi
260    return( true );
261    }
262
263    // -------------------------------------------------------------------------
264    template< class I >
265    bool cpPlugins::Interface::Image::
266    _Type( itk::DataObject* o )
267    {
268    typedef itk::ImageToVTKImageFilter< I > _F;
269
270    typename _F::Pointer f = _F::New( );
271    f->SetInput( dynamic_cast< I* >( o ) );
272    f->Update( );
273
274    this->m_ITKObject = o;
275    this->m_VTKObject = f->GetOutput( );
276    this->m_ITKvVTKConnection = f;
277
278    return( true );
279    }
280 */
281
282 // eof - $RCSfile$