go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUResampleImageFilterFactory.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkGPUResampleImageFilterFactory_h
19 #define __itkGPUResampleImageFilterFactory_h
20 
23 
24 namespace itk
25 {
36 template< typename TTypeListIn, typename TTypeListOut, typename NDimensions >
38  public GPUObjectFactoryBase< NDimensions >
39 {
40 public:
41 
45  typedef SmartPointer< const Self > ConstPointer;
46 
48  const char * GetDescription() const { return "A Factory for GPUResampleImageFilter"; }
49 
51  itkFactorylessNewMacro( Self );
52 
55 
57  static void RegisterOneFactory();
58 
60  template< typename TTypeIn, typename TTypeOut, unsigned int VImageDimension >
61  void operator()( void )
62  {
63  // Image typedefs
64  typedef Image< TTypeIn, VImageDimension > InputImageType;
65  typedef Image< TTypeOut, VImageDimension > OutputImageType;
66  typedef GPUImage< TTypeIn, VImageDimension > GPUInputImageType;
67  typedef GPUImage< TTypeOut, VImageDimension > GPUOutputImageType;
68 
69  // Override default
70  this->RegisterOverride(
71  typeid( ResampleImageFilter< InputImageType, OutputImageType, float > ).name(),
73  "GPU ResampleImageFilter override default, interpolator float",
74  true,
76  );
77 
78  // Override default
79  // With interpolator precision type as double, on GPU as float
80  this->RegisterOverride(
81  typeid( ResampleImageFilter< InputImageType, OutputImageType, double > ).name(),
83  "GPU ResampleImageFilter override default, interpolator double",
84  true,
86  );
87 
88  // Override when itkGPUImage is first template argument
89  this->RegisterOverride(
90  typeid( ResampleImageFilter< GPUInputImageType, OutputImageType, float > ).name(),
92  "GPU ResampleImageFilter override GPUImage first, interpolator float",
93  true,
95  );
96 
97  // Override when itkGPUImage is first template argument
98  // With interpolator precision type as double, on GPU as float
99  this->RegisterOverride(
100  typeid( ResampleImageFilter< GPUInputImageType, OutputImageType, double > ).name(),
102  "GPU ResampleImageFilter override GPUImage first, interpolator double",
103  true,
105  );
106 
107  // Override when itkGPUImage is second template argument
108  this->RegisterOverride(
109  typeid( ResampleImageFilter< InputImageType, GPUOutputImageType, float > ).name(),
111  "GPU ResampleImageFilter override GPUImage second, interpolator float",
112  true,
114  );
115 
116  // Override when itkGPUImage is second template argument
117  // With interpolator precision type as double, on GPU as float
118  this->RegisterOverride(
119  typeid( ResampleImageFilter< InputImageType, GPUOutputImageType, double > ).name(),
121  "GPU ResampleImageFilter override GPUImage second, interpolator double",
122  true,
124  );
125 
126  // Override when itkGPUImage is first and second template arguments
127  this->RegisterOverride(
128  typeid( ResampleImageFilter< GPUInputImageType, GPUOutputImageType, float > ).name(),
130  "GPU ResampleImageFilter override GPUImage first and second, interpolator float",
131  true,
133  );
134 
135  // Override when itkGPUImage is first and second template arguments
136  // With interpolator precision type as double, on GPU as float
137  this->RegisterOverride(
138  typeid( ResampleImageFilter< GPUInputImageType, GPUOutputImageType, double > ).name(),
140  "GPU ResampleImageFilter override GPUImage first and second, interpolator double",
141  true,
143  );
144  }
145 
146 
147 protected:
148 
151 
153  virtual void Register1D();
154 
156  virtual void Register2D();
157 
159  virtual void Register3D();
160 
161 private:
162 
163  GPUResampleImageFilterFactory2( const Self & ); // purposely not implemented
164  void operator=( const Self & ); // purposely not implemented
165 
166 };
167 
168 } // end namespace itk
169 
170 #ifndef ITK_MANUAL_INSTANTIATION
171 #include "itkGPUResampleImageFilterFactory.hxx"
172 #endif
173 
174 #endif // end #ifndef __itkGPUResampleImageFilterFactory_h
Object Factory implementation for GPUResampleImageFilter.
GPU version of ResampleImageFilter.
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:63
Base class for all GPU factory classes.
GPUObjectFactoryBase< NDimensions > Superclass


Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo