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 
24 namespace itk
25 {
36 template< typename TTypeList, 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 GPUBSplineInterpolateImageFunction"; }
49 
51  itkFactorylessNewMacro( Self );
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 
109 protected:
110 
113 
115  virtual void Register1D();
116 
118  virtual void Register2D();
119 
121  virtual void Register3D();
122 
123 private:
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
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:63
GPU version of BSplineInterpolateImageFunction.
Base class for all GPU factory classes.
Object Factory implementation for GPUBSplineInterpolateImageFunction.


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