ITK  6.0.0
Insight Toolkit
itkBSplineTransformInitializer.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkBSplineTransformInitializer_h
19#define itkBSplineTransformInitializer_h
20
21#include "itkObject.h"
22#include "itkObjectFactory.h"
23
24namespace itk
25{
40template <typename TTransform, typename TImage>
41class ITK_TEMPLATE_EXPORT BSplineTransformInitializer : public Object
42{
43public:
44 ITK_DISALLOW_COPY_AND_MOVE(BSplineTransformInitializer);
45
51
53 itkNewMacro(Self);
54
56 itkOverrideGetNameOfClassMacro(BSplineTransformInitializer);
57
59 using TransformType = TTransform;
60
62 using ImageType = TImage;
66 using ImagePointCoordRepType = typename ImagePointType::CoordRepType;
67
72 using SpacingType = typename TransformType::SpacingType;
73 using OriginType = typename TransformType::OriginType;
75 using PhysicalDimensionsType = typename TransformType::PhysicalDimensionsType;
76 using MeshSizeType = typename TransformType::MeshSizeType;
77 using SpacingComponentType = typename SpacingType::ComponentType;
78
80 static constexpr unsigned int SpaceDimension = TransformType::SpaceDimension;
81
83 itkGetConstObjectMacro(Transform, TransformType);
84 itkSetObjectMacro(Transform, TransformType);
88 itkGetConstObjectMacro(Image, ImageType);
89 itkSetConstObjectMacro(Image, ImageType);
95 itkGetConstMacro(TransformDomainMeshSize, MeshSizeType);
96 void
101 virtual void
103
104protected:
106 ~BSplineTransformInitializer() override = default;
107
108 void
109 PrintSelf(std::ostream & os, Indent indent) const override;
110
111private:
112 ImagePointer m_Image{};
113 TransformPointer m_Transform{};
114
115 MeshSizeType m_TransformDomainMeshSize{ MeshSizeType::Filled(1) };
116 bool m_SetTransformDomainMeshSizeViaInitializer{ false };
117
118}; // class BSplineTransformInitializer
119} // namespace itk
120
121#ifndef ITK_MANUAL_INSTANTIATION
122# include "itkBSplineTransformInitializer.hxx"
123#endif
124
125#endif /* itkBSplineTransformInitializer_h */
BSplineTransformInitializer is a helper class intended to initialize the control point grid such that...
void PrintSelf(std::ostream &os, Indent indent) const override
typename TransformType::OriginType OriginType
~BSplineTransformInitializer() override=default
typename TransformType::MeshSizeType MeshSizeType
void SetTransformDomainMeshSize(const MeshSizeType)
typename ImageType::PointType ImagePointType
typename ImageType::ConstPointer ImagePointer
typename SpacingType::ComponentType SpacingComponentType
typename TransformType::Pointer TransformPointer
typename TransformType::PhysicalDimensionsType PhysicalDimensionsType
typename TransformType::DirectionType DirectionType
virtual void InitializeTransform() const
typename TransformType::RegionType RegionType
typename TransformType::SpacingType SpacingType
typename ImagePointType::CoordRepType ImagePointCoordRepType
Templated n-dimensional image class.
Definition: itkImage.h:89
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Base class for most ITK classes.
Definition: itkObject.h:62
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:84
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....