ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkBSplineTransformParametersAdaptor.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkBSplineTransformParametersAdaptor_h
19 #define itkBSplineTransformParametersAdaptor_h
20 
22 
23 namespace itk
24 {
64 template<typename TTransform>
65 class ITK_TEMPLATE_EXPORT BSplineTransformParametersAdaptor
66 : public TransformParametersAdaptor<TTransform>
67 {
68 public:
69  ITK_DISALLOW_COPY_AND_ASSIGN(BSplineTransformParametersAdaptor);
70 
76 
78  itkNewMacro( Self );
79 
82 
84  using TransformType = TTransform;
85  using TransformPointer = typename TransformType::Pointer;
86 
87  using FixedParametersType = typename Superclass::FixedParametersType;
88  using FixedParametersValueType = typename Superclass::FixedParametersValueType;
89  using ParametersType = typename Superclass::ParametersType;
90  using ParametersValueType = typename Superclass::ParametersValueType;
91 
92  using OriginType = typename TransformType::OriginType;
94  using SpacingType = typename TransformType::SpacingType;
96  using MeshSizeType = typename TransformType::MeshSizeType;
98  using PhysicalDimensionsType = typename TransformType::PhysicalDimensionsType;
99 
100 
101  using ImageType = typename TransformType::ImageType;
103  using CoefficientImageArray = typename TransformType::CoefficientImageArray;
104 
106  static constexpr unsigned int SpaceDimension = TransformType::SpaceDimension;
107 
109  void SetRequiredTransformDomainMeshSize( const MeshSizeType & );
110 
112  itkGetConstReferenceMacro( RequiredTransformDomainMeshSize, MeshSizeType );
113 
115  void SetRequiredTransformDomainPhysicalDimensions( const PhysicalDimensionsType & );
116 
118  itkGetConstReferenceMacro( RequiredTransformDomainPhysicalDimensions, PhysicalDimensionsType );
119 
121  void SetRequiredTransformDomainOrigin( const OriginType & );
122 
124  itkGetConstReferenceMacro( RequiredTransformDomainOrigin, OriginType );
125 
127  void SetRequiredTransformDomainDirection( const DirectionType & );
128 
130  itkGetConstReferenceMacro( RequiredTransformDomainDirection, DirectionType );
131 
132  void SetRequiredFixedParameters( const FixedParametersType ) override;
133 
135  void AdaptTransformParameters() override;
136 
137 protected:
139  ~BSplineTransformParametersAdaptor() override = default;
140 
141  void PrintSelf( std::ostream & os, Indent indent ) const override;
142 
143 private:
145  void UpdateRequiredFixedParameters();
146 
151 
152 }; //class BSplineTransformParametersAdaptor
153 } // namespace itk
154 
155 #ifndef ITK_MANUAL_INSTANTIATION
156 #include "itkBSplineTransformParametersAdaptor.hxx"
157 #endif
158 
159 #endif /* itkBSplineTransformParametersAdaptor_h */
Light weight base class for most itk classes.
Base helper class intended for multi-resolution image registration.
typename Superclass::FixedParametersValueType FixedParametersValueType
typename TransformType::CoefficientImageArray CoefficientImageArray
typename TransformType::DirectionType DirectionType
typename Superclass::ParametersValueType ParametersValueType
BSplineTransformParametersAdaptor adapts a BSplineTransform to the new specified fixed parameters...
Control indentation during Print() invocation.
Definition: itkIndent.h:49
typename Superclass::FixedParametersType FixedParametersType
typename TransformType::PhysicalDimensionsType PhysicalDimensionsType