go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUShrinkImageFilterFactory.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 __itkGPUShrinkImageFilterFactory_h
19#define __itkGPUShrinkImageFilterFactory_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 GPUShrinkImageFilter"; }
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( ShrinkImageFilter< InputImageType, OutputImageType > ).name(),
73 "GPU ShrinkImageFilter override default",
74 true,
76 );
77
78 // Override when itkGPUImage is first template argument
79 this->RegisterOverride(
80 typeid( ShrinkImageFilter< GPUInputImageType, OutputImageType > ).name(),
82 "GPU ShrinkImageFilter override GPUImage first",
83 true,
85 );
86
87 // Override when itkGPUImage is second template argument
88 this->RegisterOverride(
89 typeid( ShrinkImageFilter< InputImageType, GPUOutputImageType > ).name(),
91 "GPU ShrinkImageFilter override GPUImage second",
92 true,
94 );
95
96 // Override when itkGPUImage is first and second template arguments
97 this->RegisterOverride(
98 typeid( ShrinkImageFilter< GPUInputImageType, GPUOutputImageType > ).name(),
100 "GPU ShrinkImageFilter override GPUImage first and second",
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 GPUShrinkImageFilterFactory2( 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 "itkGPUShrinkImageFilterFactory.hxx"
132#endif
133
134#endif // end #ifndef __itkGPUShrinkImageFilterFactory_h
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:64
Base class for all GPU factory classes.
Object Factory implementation for GPUShrinkImageFilter.
GPUShrinkImageFilterFactory2(const Self &)
GPUObjectFactoryBase< NDimensions > Superclass
GPU version of ShrinkImageFilter.


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo