]> Creatis software - clitk.git/blob - itk/itkImageToVTKImageFilter.txx
again
[clitk.git] / itk / itkImageToVTKImageFilter.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 _itkImageToVTKImageFilter_txx\r
15 #define _itkImageToVTKImageFilter_txx\r
16 \r
17 #include "itkImageToVTKImageFilter.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 TInputImage>\r
28 ImageToVTKImageFilter<TInputImage>\r
29 ::ImageToVTKImageFilter()\r
30 {\r
31 \r
32     m_Importer = vtkImageImport::New();\r
33 \r
34     m_Exporter = ExporterFilterType::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 TInputImage>\r
58 ImageToVTKImageFilter<TInputImage>\r
59 ::~ImageToVTKImageFilter()\r
60 {\r
61     if ( m_Importer )\r
62     {\r
63         m_Importer->Delete();\r
64         m_Importer = 0;\r
65     }\r
66 }\r
67 \r
68 \r
69 \r
70 /**\r
71  * Set an itk::Image as input\r
72  */\r
73 template <class TInputImage>\r
74 void\r
75 ImageToVTKImageFilter<TInputImage>\r
76 ::SetInput( const InputImageType * inputImage )\r
77 {\r
78     m_Exporter->SetInput( inputImage );\r
79 }\r
80 \r
81 \r
82 \r
83 /**\r
84  * Get a vtkImage as output\r
85  */\r
86 template <class TInputImage>\r
87 vtkImageData *\r
88 ImageToVTKImageFilter<TInputImage>\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 importer filter\r
99  */\r
100 template <class TInputImage>\r
101 vtkImageImport *\r
102 ImageToVTKImageFilter<TInputImage>\r
103 ::GetImporter() const\r
104 {\r
105     return m_Importer;\r
106 }\r
107 \r
108 \r
109 \r
110 /**\r
111  * Get the exporter filter\r
112  */\r
113 template <class TInputImage>\r
114 typename ImageToVTKImageFilter<TInputImage>::ExporterFilterType *\r
115 ImageToVTKImageFilter<TInputImage>\r
116 ::GetExporter() const\r
117 {\r
118     return m_Exporter.GetPointer();\r
119 }\r
120 \r
121 \r
122 \r
123 /**\r
124  * Delegate the Update to the importer\r
125  */\r
126 template <class TInputImage>\r
127 void\r
128 ImageToVTKImageFilter<TInputImage>\r
129 ::Update()\r
130 {\r
131     m_Importer->Update();\r
132 }\r
133 \r
134 \r
135 \r
136 \r
137 \r
138 } // end namespace itk\r
139 \r
140 #endif\r
141 \r