ITK  4.11.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;
83  typedef typename FixedPointSetType::ConstPointer FixedPointSetConstPointer;
84 
86  typedef TMovingPointSet MovingPointSetType;
87  typedef typename MovingPointSetType::ConstPointer MovingPointSetConstPointer;
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
Light weight base class for most itk classes.
PointSetToPointSetMetric< FixedPointSetType, MovingPointSetType > MetricType
unsigned long ModifiedTimeType
Definition: itkIntTypes.h:164
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Computes similarity between two point sets.
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.
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...
Control indentation during Print() invocation.
Definition: itkIndent.h:49