]> Creatis software - clitk.git/blob - itk/itkVTKImageToImageFilter.txx
- ggo is now used by the filter
[clitk.git] / itk / itkVTKImageToImageFilter.txx
1 /*=========================================================================\r
2 \r
3   Program:   Insight Segmentation & Registration Toolkit\r
4   Language:  C++\r
5 \r
6   Copyright (c) 2002 Insight Consortium. All rights reserved.\r
7   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.\r
8 \r
9      This software is distributed WITHOUT ANY WARRANTY; without even\r
10      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\r
11      PURPOSE.  See the above copyright notices for more information.\r
12 \r
13 =========================================================================*/\r
14 #ifndef _itkVTKImageToImageFilter_txx\r
15 #define _itkVTKImageToImageFilter_txx\r
16 \r
17 #include "itkVTKImageToImageFilter.h"\r
18 \r
19 namespace itk\r
20 {\r
21 \r
22 \r
23 \r
24 /**\r
25  * Constructor\r
26  */\r
27 template <class TOutputImage>\r
28 VTKImageToImageFilter<TOutputImage>\r
29 ::VTKImageToImageFilter()\r
30 {\r
31 \r
32     m_Exporter = vtkImageExport::New();\r
33 \r
34     m_Importer = ImporterFilterType::New();\r
35 \r
36     m_Importer->SetUpdateInformationCallback( m_Exporter->GetUpdateInformationCallback());\r
37     m_Importer->SetPipelineModifiedCallback( m_Exporter->GetPipelineModifiedCallback());\r
38     m_Importer->SetWholeExtentCallback( m_Exporter->GetWholeExtentCallback());\r
39     m_Importer->SetSpacingCallback( m_Exporter->GetSpacingCallback());\r
40     m_Importer->SetOriginCallback( m_Exporter->GetOriginCallback());\r
41     m_Importer->SetScalarTypeCallback( m_Exporter->GetScalarTypeCallback());\r
42     m_Importer->SetNumberOfComponentsCallback( m_Exporter->GetNumberOfComponentsCallback());\r
43     m_Importer->SetPropagateUpdateExtentCallback( m_Exporter->GetPropagateUpdateExtentCallback());\r
44     m_Importer->SetUpdateDataCallback( m_Exporter->GetUpdateDataCallback());\r
45     m_Importer->SetDataExtentCallback( m_Exporter->GetDataExtentCallback());\r
46     m_Importer->SetBufferPointerCallback( m_Exporter->GetBufferPointerCallback());\r
47     m_Importer->SetCallbackUserData( m_Exporter->GetCallbackUserData());\r
48 \r
49 }\r
50 \r
51 \r
52 \r
53 \r
54 /**\r
55  * Destructor\r
56  */\r
57 template <class TOutputImage>\r
58 VTKImageToImageFilter<TOutputImage>\r
59 ::~VTKImageToImageFilter()\r
60 {\r
61     if ( m_Exporter )\r
62     {\r
63         m_Exporter->Delete();\r
64         m_Exporter = 0;\r
65     }\r
66 }\r
67 \r
68 \r
69 \r
70 /**\r
71  * Set a vtkImageData as input\r
72  */\r
73 template <class TOutputImage>\r
74 void\r
75 VTKImageToImageFilter<TOutputImage>\r
76 ::SetInput( vtkImageData * inputImage )\r
77 {\r
78     m_Exporter->SetInput( inputImage );\r
79 }\r
80 \r
81 \r
82 \r
83 /**\r
84  * Get an itk::Image as output\r
85  */\r
86 template <class TOutputImage>\r
87 const typename VTKImageToImageFilter<TOutputImage>::OutputImageType *\r
88 VTKImageToImageFilter<TOutputImage>\r
89 ::GetOutput() const\r
90 {\r
91     return m_Importer->GetOutput();\r
92 }\r
93 \r
94 \r
95 \r
96 \r
97 /**\r
98  * Get the exporter filter\r
99  */\r
100 template <class TOutputImage>\r
101 vtkImageExport *\r
102 VTKImageToImageFilter<TOutputImage>\r
103 ::GetExporter() const\r
104 {\r
105     return m_Exporter;\r
106 }\r
107 \r
108 \r
109 \r
110 /**\r
111  * Get the importer filter\r
112  */\r
113 template <class TOutputImage>\r
114 typename VTKImageToImageFilter<TOutputImage>::ImporterFilterType *\r
115 VTKImageToImageFilter<TOutputImage>\r
116 ::GetImporter() const\r
117 {\r
118     return m_Importer;\r
119 }\r
120 \r
121 \r
122 \r
123 \r
124 /**\r
125  * Delegate the Update to the importer\r
126  */\r
127 template <class TOutputImage>\r
128 void\r
129 VTKImageToImageFilter<TOutputImage>\r
130 ::Update()\r
131 {\r
132     m_Importer->Update();\r
133 }\r
134 \r
135 \r
136 \r
137 \r
138 } // end namespace itk\r
139 \r
140 #endif\r
141 \r