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
24namespace itk
25{
36template< typename TTypeListIn, typename TTypeListOut, typename NDimensions >
38 public GPUObjectFactoryBase< NDimensions >
39{
40public:
41
45 typedef SmartPointer< const Self > ConstPointer;
46
48 const char * GetDescription() const { return "A Factory for GPUResampleImageFilter"; }
49
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
147protected:
148
151
153 virtual void Register1D();
154
156 virtual void Register2D();
157
159 virtual void Register3D();
160
161private:
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
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:64
Base class for all GPU factory classes.
Object Factory implementation for GPUResampleImageFilter.
GPUObjectFactoryBase< NDimensions > Superclass
GPU version of ResampleImageFilter.


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo