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