go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUInterpolatorCopier.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 itkGPUInterpolatorCopier_h
19#define itkGPUInterpolatorCopier_h
20
21#include "itkInterpolateImageFunction.h"
22#include "itkGPUImage.h"
23
24namespace itk
25{
64template <typename TTypeList, typename NDimensions, typename TInterpolator, typename TOutputCoordRep>
65class ITK_TEMPLATE_EXPORT GPUInterpolatorCopier : public Object
66{
67public:
69
72 using Superclass = Object;
73 using Pointer = SmartPointer<Self>;
74 using ConstPointer = SmartPointer<const Self>;
75
77 itkNewMacro(Self);
78
80 itkTypeMacro(GPUInterpolatorCopier, Object);
81
83 using CPUInterpolatorType = TInterpolator;
84 using CPUInterpolatorConstPointer = typename CPUInterpolatorType::ConstPointer;
85 using CPUInputImageType = typename CPUInterpolatorType::InputImageType;
86 using CPUCoordRepType = typename CPUInterpolatorType::CoordRepType;
87 using GPUCoordRepType = TOutputCoordRep;
88
90 using GPUInterpolatorType = InterpolateImageFunction<CPUInputImageType, GPUCoordRepType>;
91 using GPUInterpolatorPointer = typename GPUInterpolatorType::Pointer;
92 using GPUInterpolatorConstPointer = typename GPUInterpolatorType::ConstPointer;
93
95 using CPUInputImagePixelType = typename CPUInputImageType::PixelType;
97 using GPUExplicitInterpolatorType = InterpolateImageFunction<GPUInputImageType, GPUCoordRepType>;
98 using GPUExplicitInterpolatorPointer = typename GPUExplicitInterpolatorType::Pointer;
99 using GPUExplicitInterpolatorConstPointer = typename GPUExplicitInterpolatorType::ConstPointer;
100
102 itkSetConstObjectMacro(InputInterpolator, CPUInterpolatorType);
103
106
110
117 itkGetConstMacro(ExplicitMode, bool);
118 itkSetMacro(ExplicitMode, bool);
119
121 void
123
124#ifdef ITK_USE_CONCEPT_CHECKING
125 // Begin concept checking
126 itkConceptMacro(OutputCoordRepIsFloatingPointCheck, (Concept::IsFloatingPoint<TOutputCoordRep>));
127 // End concept checking
128#endif
129
130protected:
132 ~GPUInterpolatorCopier() override = default;
133 void
134 PrintSelf(std::ostream & os, Indent indent) const override;
135
136private:
137 CPUInterpolatorConstPointer m_InputInterpolator{};
140 ModifiedTimeType m_InternalTransformTime{};
141 bool m_ExplicitMode{};
142};
143
144} // end namespace itk
145
146#ifndef ITK_MANUAL_INSTANTIATION
147# include "itkGPUInterpolatorCopier.hxx"
148#endif
149
150#endif /* itkGPUInterpolatorCopier_h */
Templated n-dimensional image class for the GPU.
Definition itkGPUImage.h:64
A helper class which creates an GPU interpolator which is perfect copy of the CPU interpolator.
typename GPUInterpolatorType::ConstPointer GPUInterpolatorConstPointer
~GPUInterpolatorCopier() override=default
typename GPUInterpolatorType::Pointer GPUInterpolatorPointer
InterpolateImageFunction< GPUInputImageType, GPUCoordRepType > GPUExplicitInterpolatorType
SmartPointer< const Self > ConstPointer
typename GPUExplicitInterpolatorType::Pointer GPUExplicitInterpolatorPointer
typename CPUInterpolatorType::ConstPointer CPUInterpolatorConstPointer
itkGetModifiableObjectMacro(Output, GPUInterpolatorType)
typename CPUInputImageType::PixelType CPUInputImagePixelType
itkGetModifiableObjectMacro(ExplicitOutput, GPUExplicitInterpolatorType)
InterpolateImageFunction< CPUInputImageType, GPUCoordRepType > GPUInterpolatorType
typename CPUInterpolatorType::CoordRepType CPUCoordRepType
ITK_DISALLOW_COPY_AND_MOVE(GPUInterpolatorCopier)
typename GPUExplicitInterpolatorType::ConstPointer GPUExplicitInterpolatorConstPointer
typename CPUInterpolatorType::InputImageType CPUInputImageType
void PrintSelf(std::ostream &os, Indent indent) const override


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo