ITK  4.5.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 {
62 template< typename TFixedPointSet, typename TMovingPointSet >
64 {
65 public:
71 
73  itkNewMacro(Self);
74 
77 
79  typedef TFixedPointSet FixedPointSetType;
80  typedef typename FixedPointSetType::ConstPointer FixedPointSetConstPointer;
81 
83  typedef TMovingPointSet MovingPointSetType;
84  typedef typename MovingPointSetType::ConstPointer MovingPointSetConstPointer;
85 
89 
93 
99 
102 
106 
109 
111  itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
112  itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
114 
116  itkSetConstObjectMacro(MovingPointSet, MovingPointSetType);
117  itkGetConstObjectMacro(MovingPointSet, MovingPointSetType);
119 
121  itkSetObjectMacro(Optimizer, OptimizerType);
122  itkGetModifiableObjectMacro(Optimizer, OptimizerType);
124 
126  itkSetObjectMacro(Metric, MetricType);
127  itkGetModifiableObjectMacro(Metric, MetricType);
129 
131  itkSetObjectMacro(Transform, TransformType);
132  itkGetModifiableObjectMacro(Transform, TransformType);
134 
136  virtual void SetInitialTransformParameters(const ParametersType & param);
137 
138  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
139 
142  itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
143 
145  void Initialize()
146  throw ( ExceptionObject );
147 
149  const TransformOutputType * GetOutput() const;
150 
154  using Superclass::MakeOutput;
155  virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx);
156 
159  ModifiedTimeType GetMTime() const;
160 
161 #ifdef ITKV3_COMPATIBILITY
162 
177  void StartRegistration(void) { this->Update(); }
178 #endif
179 
180 protected:
183  void PrintSelf(std::ostream & os, Indent indent) const;
184 
187  void GenerateData();
188 
189 private:
190  PointSetToPointSetRegistrationMethod(const Self &); //purposely not
191  // implemented
192  void operator=(const Self &); //purposely not
193 
194  // implemented
195 
198 
201 
203 
206 };
207 } // end namespace itk
208 
209 #ifndef ITK_MANUAL_INSTANTIATION
210 #include "itkPointSetToPointSetRegistrationMethod.hxx"
211 #endif
212 
213 #endif
virtual void Update()
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...
TransformType::ParametersType TransformParametersType
ModifiedTimeType GetMTime() const
Computes similarity between two point sets.
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
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
Decorates any subclass of itkObject with a DataObject API.
Standard exception handling object.
Generic representation for an optimization method.
Definition: itkOptimizer.h:37
This class is a base for the Optimization methods that optimize a multiple valued function...
const TransformOutputType * GetOutput() const
void PrintSelf(std::ostream &os, Indent indent) const
Control indentation during Print() invocation.
Definition: itkIndent.h:49
virtual void SetInitialTransformParameters(const ParametersType &param)