ITK  6.0.0
Insight Toolkit
itkPointSetToPointSetRegistrationMethod.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 itkPointSetToPointSetRegistrationMethod_h
19#define itkPointSetToPointSetRegistrationMethod_h
20
21#include "itkProcessObject.h"
25
26namespace itk
27{
65template <typename TFixedPointSet, typename TMovingPointSet>
66class ITK_TEMPLATE_EXPORT PointSetToPointSetRegistrationMethod : public ProcessObject
67{
68public:
69 ITK_DISALLOW_COPY_AND_MOVE(PointSetToPointSetRegistrationMethod);
70
76
78 itkNewMacro(Self);
79
81 itkOverrideGetNameOfClassMacro(PointSetToPointSetRegistrationMethod);
82
84 using FixedPointSetType = TFixedPointSet;
86
88 using MovingPointSetType = TMovingPointSet;
90
94
98
104
107
111
114
116 itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
117 itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
121 itkSetConstObjectMacro(MovingPointSet, MovingPointSetType);
122 itkGetConstObjectMacro(MovingPointSet, MovingPointSetType);
126 itkSetObjectMacro(Optimizer, OptimizerType);
127 itkGetModifiableObjectMacro(Optimizer, OptimizerType);
131 itkSetObjectMacro(Metric, MetricType);
132 itkGetModifiableObjectMacro(Metric, MetricType);
136 itkSetObjectMacro(Transform, TransformType);
137 itkGetModifiableObjectMacro(Transform, TransformType);
141 virtual void
143
144 itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
145
148 itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
149
151 void
153
155 const TransformOutputType *
156 GetOutput() const;
157
161 using Superclass::MakeOutput;
164
166 GetMTime() const override;
167
168protected:
171 void
172 PrintSelf(std::ostream & os, Indent indent) const override;
173
174 void
175 GenerateData() override;
176
177private:
178 MetricPointer m_Metric{};
180
181 MovingPointSetConstPointer m_MovingPointSet{};
182 FixedPointSetConstPointer m_FixedPointSet{};
183
184 TransformPointer m_Transform{};
185
186 ParametersType m_InitialTransformParameters{};
187 ParametersType m_LastTransformParameters{};
188};
189} // end namespace itk
190
191#ifndef ITK_MANUAL_INSTANTIATION
192# include "itkPointSetToPointSetRegistrationMethod.hxx"
193#endif
194
195#endif
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
This class is a base for the Optimization methods that optimize a multiple valued function.
Generic representation for an optimization method.
Definition: itkOptimizer.h:39
Computes similarity between two point sets.
typename TransformType::ParametersType TransformParametersType
Base class for PointSet to PointSet Registration Methods.
typename MovingPointSetType::ConstPointer MovingPointSetConstPointer
~PointSetToPointSetRegistrationMethod() override=default
typename MetricType::TransformParametersType ParametersType
void PrintSelf(std::ostream &os, Indent indent) const override
virtual void SetInitialTransformParameters(const ParametersType &param)
typename FixedPointSetType::ConstPointer FixedPointSetConstPointer
ModifiedTimeType GetMTime() const override
const TransformOutputType * GetOutput() const
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType output) override
Make a DataObject of the correct type to used as the specified output.
typename TransformOutputType::ConstPointer TransformOutputConstPointer
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
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....
class ITK_FORWARD_EXPORT ProcessObject
Definition: itkDataObject.h:41
SizeValueType ModifiedTimeType
Definition: itkIntTypes.h:105