ITK  6.0.0
Insight Toolkit
itkBSplineTransformParametersAdaptor.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 itkBSplineTransformParametersAdaptor_h
19 #define itkBSplineTransformParametersAdaptor_h
20 
22 
23 namespace itk
24 {
63 template <typename TTransform>
64 class ITK_TEMPLATE_EXPORT BSplineTransformParametersAdaptor : public TransformParametersAdaptor<TTransform>
65 {
66 public:
67  ITK_DISALLOW_COPY_AND_MOVE(BSplineTransformParametersAdaptor);
68 
74 
76  itkNewMacro(Self);
77 
79  itkOverrideGetNameOfClassMacro(BSplineTransformParametersAdaptor);
80 
82  using TransformType = TTransform;
84 
85  using typename Superclass::FixedParametersType;
86  using typename Superclass::FixedParametersValueType;
87  using typename Superclass::ParametersType;
88  using typename Superclass::ParametersValueType;
89 
90  using OriginType = typename TransformType::OriginType;
92  using SpacingType = typename TransformType::SpacingType;
94  using MeshSizeType = typename TransformType::MeshSizeType;
96  using PhysicalDimensionsType = typename TransformType::PhysicalDimensionsType;
97 
98 
99  using ImageType = typename TransformType::ImageType;
101  using CoefficientImageArray = typename TransformType::CoefficientImageArray;
102 
104  static constexpr unsigned int SpaceDimension = TransformType::SpaceDimension;
105 
107  void
108  SetRequiredTransformDomainMeshSize(const MeshSizeType &);
109 
111  itkGetConstReferenceMacro(RequiredTransformDomainMeshSize, MeshSizeType);
112 
114  void
115  SetRequiredTransformDomainPhysicalDimensions(const PhysicalDimensionsType &);
116 
118  itkGetConstReferenceMacro(RequiredTransformDomainPhysicalDimensions, PhysicalDimensionsType);
119 
121  void
122  SetRequiredTransformDomainOrigin(const OriginType &);
123 
125  itkGetConstReferenceMacro(RequiredTransformDomainOrigin, OriginType);
126 
128  void
129  SetRequiredTransformDomainDirection(const DirectionType &);
130 
132  itkGetConstReferenceMacro(RequiredTransformDomainDirection, DirectionType);
133 
134  void
135  SetRequiredFixedParameters(const FixedParametersType) override;
136 
138  void
139  AdaptTransformParameters() override;
140 
141 protected:
143  ~BSplineTransformParametersAdaptor() override = default;
144 
145  void
146  PrintSelf(std::ostream & os, Indent indent) const override;
147 
148 private:
150  void
151  UpdateRequiredFixedParameters();
152 
153  MeshSizeType m_RequiredTransformDomainMeshSize{};
154  OriginType m_RequiredTransformDomainOrigin{};
155  DirectionType m_RequiredTransformDomainDirection{};
156  PhysicalDimensionsType m_RequiredTransformDomainPhysicalDimensions{};
157 
158 }; // class BSplineTransformParametersAdaptor
159 } // namespace itk
160 
161 #ifndef ITK_MANUAL_INSTANTIATION
162 # include "itkBSplineTransformParametersAdaptor.hxx"
163 #endif
164 
165 #endif /* itkBSplineTransformParametersAdaptor_h */
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::BSplineTransformParametersAdaptor::TransformType
TTransform TransformType
Definition: itkBSplineTransformParametersAdaptor.h:82
itk::BSplineTransformParametersAdaptor
BSplineTransformParametersAdaptor adapts a BSplineTransform to the new specified fixed parameters.
Definition: itkBSplineTransformParametersAdaptor.h:64
itk::BSplineTransformParametersAdaptor::CoefficientImageArray
typename TransformType::CoefficientImageArray CoefficientImageArray
Definition: itkBSplineTransformParametersAdaptor.h:101
itk::GTest::TypedefsAndConstructors::Dimension2::DirectionType
ImageBaseType::DirectionType DirectionType
Definition: itkGTestTypedefsAndConstructors.h:52
itk::BSplineTransformParametersAdaptor::SpacingType
typename TransformType::SpacingType SpacingType
Definition: itkBSplineTransformParametersAdaptor.h:92
itk::TransformParametersAdaptorBase< Transform< TTransform::ScalarType, TTransform::InputSpaceDimension, TTransform::OutputSpaceDimension > >::FixedParametersType
typename TransformBaseType::FixedParametersType FixedParametersType
Definition: itkTransformParametersAdaptorBase.h:74
itk::BSplineTransformParametersAdaptor::MeshSizeType
typename TransformType::MeshSizeType MeshSizeType
Definition: itkBSplineTransformParametersAdaptor.h:94
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::SmartPointer< Self >
itk::BSplineTransformParametersAdaptor::PhysicalDimensionsType
typename TransformType::PhysicalDimensionsType PhysicalDimensionsType
Definition: itkBSplineTransformParametersAdaptor.h:96
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::BSplineTransformParametersAdaptor::DirectionType
typename TransformType::DirectionType DirectionType
Definition: itkBSplineTransformParametersAdaptor.h:95
itk::BSplineTransformParametersAdaptor::TransformPointer
typename TransformType::Pointer TransformPointer
Definition: itkBSplineTransformParametersAdaptor.h:83
itk::BSplineTransformParametersAdaptor::SizeType
typename TransformType::SizeType SizeType
Definition: itkBSplineTransformParametersAdaptor.h:91
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::BSplineTransformParametersAdaptor::IndexType
typename TransformType::IndexType IndexType
Definition: itkBSplineTransformParametersAdaptor.h:93
itk::BSplineTransformParametersAdaptor::OriginType
typename TransformType::OriginType OriginType
Definition: itkBSplineTransformParametersAdaptor.h:90
itk::BSplineTransformParametersAdaptor::ImageType
typename TransformType::ImageType ImageType
Definition: itkBSplineTransformParametersAdaptor.h:99
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::BSplineTransformParametersAdaptor::RegionType
typename ImageType::RegionType RegionType
Definition: itkBSplineTransformParametersAdaptor.h:100
itk::TransformParametersAdaptor
Base helper class intended for multi-resolution image registration.
Definition: itkTransformParametersAdaptor.h:55
itkTransformParametersAdaptor.h
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29