go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUBSplineBaseTransform.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 itkGPUBSplineBaseTransform_h
19#define itkGPUBSplineBaseTransform_h
20
21#include "itkGPUDataManager.h"
22#include "itkGPUImage.h"
23#include "itkGPUTransformBase.h"
24
25namespace itk
26{
28itkGPUKernelClassMacro(GPUBSplineTransformKernel);
29
41template <typename TScalarType = float, unsigned int NDimensions = 3>
42class ITK_TEMPLATE_EXPORT GPUBSplineBaseTransform : public GPUTransformBase
43{
44public:
47
50
52 itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions);
53
56 itkGetConstMacro(SplineOrder, unsigned int);
57
61
62 using GPUCoefficientImageArray = FixedArray<GPUCoefficientImagePointer, NDimensions>;
63 using GPUCoefficientImageBaseArray = FixedArray<GPUDataManagerPointer, NDimensions>;
64
66 bool
67 IsBSplineTransform() const override
68 {
69 return true;
70 }
71
73 const GPUCoefficientImageArray
75
79
80protected:
87 virtual void
88 SetSplineOrder(const unsigned int splineOrder);
89
91 ~GPUBSplineBaseTransform() override = default;
92
95 bool
96 GetSourceCode(std::string & source) const override;
97
98 GPUCoefficientImageArray m_GPUBSplineTransformCoefficientImages{};
99 GPUCoefficientImageBaseArray m_GPUBSplineTransformCoefficientImagesBase{};
100
101private:
102 GPUBSplineBaseTransform(const Self & other) = delete;
103 const Self &
104 operator=(const Self &) = delete;
105
106 std::vector<std::string> m_Sources{};
107
108 // User specified spline order (3rd or cubic is the default)
109 unsigned int m_SplineOrder{};
110};
111
112} // end namespace itk
113
114#ifndef ITK_MANUAL_INSTANTIATION
115# include "itkGPUBSplineBaseTransform.hxx"
116#endif
117
118#endif /* itkGPUBSplineBaseTransform_h */
GPU base class for the BSplineTransform.
const GPUCoefficientImageArray GetGPUCoefficientImages() const
typename GPUDataManager::Pointer GPUDataManagerPointer
typename GPUCoefficientImageType::Pointer GPUCoefficientImagePointer
const Self & operator=(const Self &)=delete
bool GetSourceCode(std::string &source) const override
virtual void SetSplineOrder(const unsigned int splineOrder)
const GPUCoefficientImageBaseArray GetGPUCoefficientImagesBases() const
~GPUBSplineBaseTransform() override=default
itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions)
GPUBSplineBaseTransform(const Self &other)=delete
Templated n-dimensional image class for the GPU.
Definition itkGPUImage.h:64
Base class for all GPU transforms.
itkGPUKernelClassMacro(GPUBSplineTransformKernel)


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