go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUCompositeTransformCopier.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 itkGPUCompositeTransformCopier_h
19#define itkGPUCompositeTransformCopier_h
20
21#include "itkCompositeTransform.h"
23
24namespace itk
25{
63template <typename TTypeList,
64 typename NDimensions,
65 typename TCompositeTransform,
66 typename TOutputTransformPrecisionType>
67class ITK_TEMPLATE_EXPORT GPUCompositeTransformCopier : public Object
68{
69public:
71
74 using Superclass = Object;
75 using Pointer = SmartPointer<Self>;
76 using ConstPointer = SmartPointer<const Self>;
77
79 itkNewMacro(Self);
80
82 itkTypeMacro(GPUCompositeTransformCopier, Object);
83
85 using CPUCompositeTransformType = TCompositeTransform;
86 using CPUCompositeTransformConstPointer = typename CPUCompositeTransformType::ConstPointer;
87 using CPUTransformType = typename CPUCompositeTransformType::TransformType;
88 using CPUTransformPointer = typename CPUTransformType::Pointer;
89 using CPUScalarType = typename CPUCompositeTransformType::ScalarType;
90
94 itkStaticConstMacro(SpaceDimension, unsigned int, CPUCompositeTransformType::InputDimension);
95
97 using GPUScalarType = TOutputTransformPrecisionType;
99 using GPUCompositeTransformPointer = typename GPUCompositeTransformType::Pointer;
100
105
107 itkSetConstObjectMacro(InputTransform, CPUCompositeTransformType);
108
111
120 itkGetConstMacro(ExplicitMode, bool);
121 itkSetMacro(ExplicitMode, bool);
122
124 void
126
127#ifdef ITK_USE_CONCEPT_CHECKING
128 // Begin concept checking
129 itkConceptMacro(OutputTransformPrecisionTypeIsFloatingPointCheck,
130 (Concept::IsFloatingPoint<TOutputTransformPrecisionType>));
131 // End concept checking
132#endif
133
134protected:
137 virtual void
138 PrintSelf(std::ostream & os, Indent indent) const override;
139
140private:
143 ModifiedTimeType m_InternalTransformTime{};
144 bool m_ExplicitMode{};
145 GPUTransformCopierPointer m_TransformCopier{};
146};
147
148} // end namespace itk
149
150#ifndef ITK_MANUAL_INSTANTIATION
151# include "itkGPUCompositeTransformCopier.hxx"
152#endif
153
154#endif /* itkGPUCompositeTransformCopier_h */
A helper class which creates an GPU composite transform which is perfect copy of the CPU composite tr...
typename CPUTransformType::Pointer CPUTransformPointer
typename CPUCompositeTransformType::ScalarType CPUScalarType
typename CPUCompositeTransformType::TransformType CPUTransformType
typename GPUTransformCopierType::Pointer GPUTransformCopierPointer
ITK_DISALLOW_COPY_AND_MOVE(GPUCompositeTransformCopier)
itkStaticConstMacro(SpaceDimension, unsigned int, CPUCompositeTransformType::InputDimension)
itkGetModifiableObjectMacro(Output, GPUCompositeTransformType)
typename GPUCompositeTransformType::Pointer GPUCompositeTransformPointer
typename CPUCompositeTransformType::ConstPointer CPUCompositeTransformConstPointer
typename GPUTransformCopierType::GPUTransformPointer GPUOutputTransformPointer
virtual void PrintSelf(std::ostream &os, Indent indent) const override
A helper class which creates an GPU transform which is perfect copy of the CPU transform.
typename GPUTransformType::Pointer GPUTransformPointer


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