]> Creatis software - clitk.git/blob - itk/itkVTKImageToImageFilter.txx
added the new headers
[clitk.git] / itk / itkVTKImageToImageFilter.txx
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ======================================================================-====*/
18 #ifndef _itkVTKImageToImageFilter_txx\r
19 #define _itkVTKImageToImageFilter_txx\r
20 #include "itkVTKImageToImageFilter.h"\r
21 \r
22 namespace itk\r
23 {\r
24 \r
25 \r
26 \r
27 /**\r
28  * Constructor\r
29  */\r
30 template <class TOutputImage>\r
31 VTKImageToImageFilter<TOutputImage>\r
32 ::VTKImageToImageFilter()\r
33 {\r
34 \r
35     m_Exporter = vtkImageExport::New();\r
36 \r
37     m_Importer = ImporterFilterType::New();\r
38 \r
39     m_Importer->SetUpdateInformationCallback( m_Exporter->GetUpdateInformationCallback());\r
40     m_Importer->SetPipelineModifiedCallback( m_Exporter->GetPipelineModifiedCallback());\r
41     m_Importer->SetWholeExtentCallback( m_Exporter->GetWholeExtentCallback());\r
42     m_Importer->SetSpacingCallback( m_Exporter->GetSpacingCallback());\r
43     m_Importer->SetOriginCallback( m_Exporter->GetOriginCallback());\r
44     m_Importer->SetScalarTypeCallback( m_Exporter->GetScalarTypeCallback());\r
45     m_Importer->SetNumberOfComponentsCallback( m_Exporter->GetNumberOfComponentsCallback());\r
46     m_Importer->SetPropagateUpdateExtentCallback( m_Exporter->GetPropagateUpdateExtentCallback());\r
47     m_Importer->SetUpdateDataCallback( m_Exporter->GetUpdateDataCallback());\r
48     m_Importer->SetDataExtentCallback( m_Exporter->GetDataExtentCallback());\r
49     m_Importer->SetBufferPointerCallback( m_Exporter->GetBufferPointerCallback());\r
50     m_Importer->SetCallbackUserData( m_Exporter->GetCallbackUserData());\r
51 \r
52 }\r
53 \r
54 \r
55 \r
56 \r
57 /**\r
58  * Destructor\r
59  */\r
60 template <class TOutputImage>\r
61 VTKImageToImageFilter<TOutputImage>\r
62 ::~VTKImageToImageFilter()\r
63 {\r
64     if ( m_Exporter )\r
65     {\r
66         m_Exporter->Delete();\r
67         m_Exporter = 0;\r
68     }\r
69 }\r
70 \r
71 \r
72 \r
73 /**\r
74  * Set a vtkImageData as input\r
75  */\r
76 template <class TOutputImage>\r
77 void\r
78 VTKImageToImageFilter<TOutputImage>\r
79 ::SetInput( vtkImageData * inputImage )\r
80 {\r
81     m_Exporter->SetInput( inputImage );\r
82 }\r
83 \r
84 \r
85 \r
86 /**\r
87  * Get an itk::Image as output\r
88  */\r
89 template <class TOutputImage>\r
90 const typename VTKImageToImageFilter<TOutputImage>::OutputImageType *\r
91 VTKImageToImageFilter<TOutputImage>\r
92 ::GetOutput() const\r
93 {\r
94     return m_Importer->GetOutput();\r
95 }\r
96 \r
97 \r
98 \r
99 \r
100 /**\r
101  * Get the exporter filter\r
102  */\r
103 template <class TOutputImage>\r
104 vtkImageExport *\r
105 VTKImageToImageFilter<TOutputImage>\r
106 ::GetExporter() const\r
107 {\r
108     return m_Exporter;\r
109 }\r
110 \r
111 \r
112 \r
113 /**\r
114  * Get the importer filter\r
115  */\r
116 template <class TOutputImage>\r
117 typename VTKImageToImageFilter<TOutputImage>::ImporterFilterType *\r
118 VTKImageToImageFilter<TOutputImage>\r
119 ::GetImporter() const\r
120 {\r
121     return m_Importer;\r
122 }\r
123 \r
124 \r
125 \r
126 \r
127 /**\r
128  * Delegate the Update to the importer\r
129  */\r
130 template <class TOutputImage>\r
131 void\r
132 VTKImageToImageFilter<TOutputImage>\r
133 ::Update()\r
134 {\r
135     m_Importer->Update();\r
136 }\r
137 \r
138 \r
139 \r
140 \r
141 } // end namespace itk\r
142 \r
143 #endif\r
144 \r