go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUBSplineInterpolateImageFunctionFactory.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 itkGPUBSplineInterpolateImageFunctionFactory_h
19#define itkGPUBSplineInterpolateImageFunctionFactory_h
20
23
24namespace itk
25{
36template <typename TTypeList, typename NDimensions>
37class ITK_TEMPLATE_EXPORT GPUBSplineInterpolateImageFunctionFactory2 : public GPUObjectFactoryBase<NDimensions>
38{
39public:
41
44 using Pointer = SmartPointer<Self>;
45 using ConstPointer = SmartPointer<const Self>;
46
48 const char *
50 {
51 return "A Factory for GPUBSplineInterpolateImageFunction";
52 }
53
56
59
61 static void
63
65 template <typename TType, unsigned int VImageDimension>
66 void
68 {
69 // Image typedefs
70 using InputImageType = Image<TType, VImageDimension>;
71 using GPUInputImageType = GPUImage<TType, VImageDimension>;
72
73 // Override default with the coordinate representation type as float
74 // and coefficient type as float
75 this->RegisterOverride(
76 typeid(BSplineInterpolateImageFunction<InputImageType, float, float>).name(),
78 "GPU BSplineInterpolateImageFunction override with coord rep and coefficient as float",
79 true,
81
82 // Override when itkGPUImage is first template argument,
83 // the coordinate representation type as float and coefficient type as float
84 this->RegisterOverride(
85 typeid(BSplineInterpolateImageFunction<GPUInputImageType, float, float>).name(),
87 "GPU BSplineInterpolateImageFunction override for GPUImage with coord rep and coefficient as float",
88 true,
90
91 // Override default with and the coordinate representation type as double
92 // and coefficient type as double
93 this->RegisterOverride(
94 typeid(BSplineInterpolateImageFunction<InputImageType, double, double>).name(),
96 "GPU BSplineInterpolateImageFunction override with coord rep and coefficient as double",
97 true,
99
100 // Override when itkGPUImage is first template argument,
101 // the coordinate representation type as double and coefficient type as double
102 this->RegisterOverride(
103 typeid(BSplineInterpolateImageFunction<GPUInputImageType, double, double>).name(),
105 "GPU BSplineInterpolateImageFunction override for GPUImage with coord rep and coefficient as double",
106 true,
108 }
109
110
111protected:
114
116 virtual void
118
120 virtual void
122
124 virtual void
126};
127
128} // end namespace itk
129
130#ifndef ITK_MANUAL_INSTANTIATION
131# include "itkGPUBSplineInterpolateImageFunctionFactory.hxx"
132#endif
133
134#endif // end #ifndef itkGPUBSplineInterpolateImageFunctionFactory_h
Object Factory implementation for GPUBSplineInterpolateImageFunction.
ITK_DISALLOW_COPY_AND_MOVE(GPUBSplineInterpolateImageFunctionFactory2)
GPU version of BSplineInterpolateImageFunction.
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:64
Base class for all GPU factory classes.


Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo