go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPULinearInterpolateImageFunctionFactory.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 __itkGPULinearInterpolateImageFunctionFactory_h
19#define __itkGPULinearInterpolateImageFunctionFactory_h
20
23
24namespace itk
25{
36template< typename TTypeList, 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 GPULinearInterpolateImageFunction"; }
49
52
55
57 static void RegisterOneFactory();
58
60 template< typename TType, unsigned int VImageDimension >
61 void operator()( void )
62 {
63 // Image typedefs
64 typedef Image< TType, VImageDimension > InputImageType;
65 typedef GPUImage< TType, VImageDimension > GPUInputImageType;
66
67 // Override default with the coordinate representation type as float
68 this->RegisterOverride(
69 typeid( LinearInterpolateImageFunction< InputImageType, float > ).name(),
71 "GPU LinearInterpolateImageFunction override with coord rep as float",
72 true,
74 );
75
76 // Override when itkGPUImage is first template argument
77 // and the coordinate representation type as float
78 this->RegisterOverride(
79 typeid( LinearInterpolateImageFunction< GPUInputImageType, float > ).name(),
81 "GPU LinearInterpolateImageFunction override for GPUImage with coord rep as float",
82 true,
84 );
85
86 // Override default with and the coordinate representation type as double
87 this->RegisterOverride(
88 typeid( LinearInterpolateImageFunction< InputImageType, double > ).name(),
90 "GPU LinearInterpolateImageFunction override with coord rep as double",
91 true,
93 );
94
95 // Override when itkGPUImage is first template argument
96 // and the coordinate representation type as double
97 this->RegisterOverride(
98 typeid( LinearInterpolateImageFunction< GPUInputImageType, double > ).name(),
100 "GPU LinearInterpolateImageFunction override for GPUImage with coord rep as double",
101 true,
103 );
104 }
105
106
107protected:
108
111
113 virtual void Register1D();
114
116 virtual void Register2D();
117
119 virtual void Register3D();
120
121private:
122
123 GPULinearInterpolateImageFunctionFactory2( const Self & ); // purposely not implemented
124 void operator=( const Self & ); // purposely not implemented
125
126};
127
128} // end namespace itk
129
130#ifndef ITK_MANUAL_INSTANTIATION
131#include "itkGPULinearInterpolateImageFunctionFactory.hxx"
132#endif
133
134#endif // end #ifndef __itkGPULinearInterpolateImageFunctionFactory_h
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:64
Object Factory implementation for GPULinearInterpolateImageFunction.
GPU version of LinearInterpolateImageFunction.
Base class for all GPU factory classes.


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo