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 >
38 public GPUObjectFactoryBase< NDimensions >
39{
40public:
41
45 typedef SmartPointer< const Self > ConstPointer;
46
48 const char * GetDescription() const { return "A Factory for GPUBSplineInterpolateImageFunction"; }
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 // and coefficient type as float
69 this->RegisterOverride(
70 typeid( BSplineInterpolateImageFunction< InputImageType, float, float > ).name(),
72 "GPU BSplineInterpolateImageFunction override with coord rep and coefficient as float",
73 true,
75 );
76
77 // Override when itkGPUImage is first template argument,
78 // the coordinate representation type as float and coefficient type as float
79 this->RegisterOverride(
80 typeid( BSplineInterpolateImageFunction< GPUInputImageType, float, float > ).name(),
82 "GPU BSplineInterpolateImageFunction override for GPUImage with coord rep and coefficient as float",
83 true,
85 );
86
87 // Override default with and the coordinate representation type as double
88 // and coefficient type as double
89 this->RegisterOverride(
90 typeid( BSplineInterpolateImageFunction< InputImageType, double, double > ).name(),
92 "GPU BSplineInterpolateImageFunction override with coord rep and coefficient as double",
93 true,
95 );
96
97 // Override when itkGPUImage is first template argument,
98 // the coordinate representation type as double and coefficient type as double
99 this->RegisterOverride(
100 typeid( BSplineInterpolateImageFunction< GPUInputImageType, double, double > ).name(),
102 "GPU BSplineInterpolateImageFunction override for GPUImage with coord rep and coefficient as double",
103 true,
105 );
106 }
107
108
109protected:
110
113
115 virtual void Register1D();
116
118 virtual void Register2D();
119
121 virtual void Register3D();
122
123private:
124
125 GPUBSplineInterpolateImageFunctionFactory2( const Self & ); // purposely not implemented
126 void operator=( const Self & ); // purposely not implemented
127
128};
129
130} // end namespace itk
131
132#ifndef ITK_MANUAL_INSTANTIATION
133#include "itkGPUBSplineInterpolateImageFunctionFactory.hxx"
134#endif
135
136#endif // end #ifndef __itkGPUBSplineInterpolateImageFunctionFactory_h
Object Factory implementation for GPUBSplineInterpolateImageFunction.
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 1667476801 for elastix by doxygen 1.9.4 elastix logo