ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkPointSetToPointSetRegistrationMethod.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 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:
74 
76  itkNewMacro(Self);
77 
80 
82  typedef TFixedPointSet FixedPointSetType;
84 
86  typedef TMovingPointSet MovingPointSetType;
88 
92 
96 
102 
105 
109 
112 
114  itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
115  itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
117 
119  itkSetConstObjectMacro(MovingPointSet, MovingPointSetType);
120  itkGetConstObjectMacro(MovingPointSet, MovingPointSetType);
122 
124  itkSetObjectMacro(Optimizer, OptimizerType);
125  itkGetModifiableObjectMacro(Optimizer, OptimizerType);
127 
129  itkSetObjectMacro(Metric, MetricType);
130  itkGetModifiableObjectMacro(Metric, MetricType);
132 
134  itkSetObjectMacro(Transform, TransformType);
135  itkGetModifiableObjectMacro(Transform, TransformType);
137 
139  virtual void SetInitialTransformParameters(const ParametersType & param);
140 
141  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
142 
145  itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
146 
148  void Initialize()
149  throw ( ExceptionObject );
150 
152  const TransformOutputType * GetOutput() const;
153 
157  using Superclass::MakeOutput;
158  virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
159 
160  virtual ModifiedTimeType GetMTime() const ITK_OVERRIDE;
161 
162 #ifdef ITKV3_COMPATIBILITY
163 
178  void StartRegistration(void) { this->Update(); }
179 #endif
180 
181 protected:
184  virtual void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
185 
186  virtual void GenerateData() ITK_OVERRIDE;
187 
188 private:
189  ITK_DISALLOW_COPY_AND_ASSIGN(PointSetToPointSetRegistrationMethod);
190 
191  MetricPointer m_Metric;
192  OptimizerType::Pointer m_Optimizer;
193 
194  MovingPointSetConstPointer m_MovingPointSet;
195  FixedPointSetConstPointer m_FixedPointSet;
196 
197  TransformPointer m_Transform;
198 
199  ParametersType m_InitialTransformParameters;
200  ParametersType m_LastTransformParameters;
201 };
202 } // end namespace itk
203 
204 #ifndef ITK_MANUAL_INSTANTIATION
205 #include "itkPointSetToPointSetRegistrationMethod.hxx"
206 #endif
207 
208 #endif
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
PointSetToPointSetMetric< FixedPointSetType, MovingPointSetType > MetricType
virtual void Initialize()
unsigned long ModifiedTimeType
Definition: itkIntTypes.h:164
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
DataObject::Pointer DataObjectPointer
Computes similarity between two point sets.
SmartPointer< Self > Pointer
Base class for PointSet to PointSet Registration Methods.
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:82
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Class to hold and manage different parameter types used during optimization.
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< const Self > ConstPointer
Standard exception handling object.
Generic representation for an optimization method.
Definition: itkOptimizer.h:38
This class is a base for the Optimization methods that optimize a multiple valued function...
virtual void Update()
Control indentation during Print() invocation.
Definition: itkIndent.h:49