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