]> Creatis software - clitk.git/blob - itk/itkImageToVTKImageFilter.txx
Initial revision
[clitk.git] / itk / itkImageToVTKImageFilter.txx
1 /*=========================================================================\r
2 \r
3   Program:   Insight Segmentation & Registration Toolkit\r
4   Module:    $RCSfile: itkImageToVTKImageFilter.txx,v $\r
5   Language:  C++\r
6   Date:      $Date: 2010/01/06 13:32:01 $\r
7   Version:   $Revision: 1.1 $\r
8 \r
9   Copyright (c) 2002 Insight Consortium. All rights reserved.\r
10   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.\r
11 \r
12      This software is distributed WITHOUT ANY WARRANTY; without even\r
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\r
14      PURPOSE.  See the above copyright notices for more information.\r
15 \r
16 =========================================================================*/\r
17 #ifndef _itkImageToVTKImageFilter_txx\r
18 #define _itkImageToVTKImageFilter_txx\r
19 \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