VTK
vtkIterativeClosestPointTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkIterativeClosestPointTransform.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
41 #ifndef vtkIterativeClosestPointTransform_h
42 #define vtkIterativeClosestPointTransform_h
43 
44 #include "vtkCommonDataModelModule.h" // For export macro
45 #include "vtkLinearTransform.h"
46 
47 #define VTK_ICP_MODE_RMS 0
48 #define VTK_ICP_MODE_AV 1
49 
50 class vtkCellLocator;
52 class vtkDataSet;
53 
55 {
56 public:
59  void PrintSelf(ostream& os, vtkIndent indent);
60 
62 
68 
70 
72  void SetLocator(vtkCellLocator *locator);
75 
77 
78  vtkSetMacro(MaximumNumberOfIterations, int);
79  vtkGetMacro(MaximumNumberOfIterations, int);
81 
83 
84  vtkGetMacro(NumberOfIterations, int);
86 
88 
90  vtkSetMacro(CheckMeanDistance, int);
91  vtkGetMacro(CheckMeanDistance, int);
92  vtkBooleanMacro(CheckMeanDistance, int);
94 
96 
101  vtkSetClampMacro(MeanDistanceMode,int,
103  vtkGetMacro(MeanDistanceMode,int);
105  {this->SetMeanDistanceMode(VTK_ICP_MODE_RMS);}
107  {this->SetMeanDistanceMode(VTK_ICP_MODE_AV);}
110 
112 
115  vtkSetMacro(MaximumMeanDistance, double);
116  vtkGetMacro(MaximumMeanDistance, double);
118 
120 
121  vtkGetMacro(MeanDistance, double);
123 
125 
128  vtkSetMacro(MaximumNumberOfLandmarks, int);
129  vtkGetMacro(MaximumNumberOfLandmarks, int);
131 
133 
135  vtkSetMacro(StartByMatchingCentroids, int);
136  vtkGetMacro(StartByMatchingCentroids, int);
137  vtkBooleanMacro(StartByMatchingCentroids, int);
139 
141 
146 
149  void Inverse();
150 
153 
154 protected:
155 
157 
158  void ReleaseSource(void);
159  void ReleaseTarget(void);
161 
163  void ReleaseLocator(void);
164 
167 
169  unsigned long int GetMTime();
170 
173 
175 
178 
188 
190  double MeanDistance;
192 private:
194  void operator=(const vtkIterativeClosestPointTransform&); // Not implemented.
195 };
196 
197 #endif
vtkIterativeClosestPointTransform::MeanDistanceMode
int MeanDistanceMode
Definition: vtkIterativeClosestPointTransform.h:184
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkLinearTransform.h
vtkIterativeClosestPointTransform::StartByMatchingCentroids
int StartByMatchingCentroids
Definition: vtkIterativeClosestPointTransform.h:187
vtkCellLocator
octree-based spatial search object to quickly locate cells
Definition: vtkCellLocator.h:52
vtkAbstractTransform
superclass for all geometric transformations
Definition: vtkAbstractTransform.h:50
vtkIterativeClosestPointTransform::SetMeanDistanceModeToAbsoluteValue
void SetMeanDistanceModeToAbsoluteValue()
Definition: vtkIterativeClosestPointTransform.h:106
vtkIterativeClosestPointTransform::ReleaseLocator
void ReleaseLocator(void)
vtkIterativeClosestPointTransform::~vtkIterativeClosestPointTransform
~vtkIterativeClosestPointTransform()
vtkCommonDataModelModule.h
vtkIterativeClosestPointTransform::Target
vtkDataSet * Target
Definition: vtkIterativeClosestPointTransform.h:180
vtkIterativeClosestPointTransform::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkIterativeClosestPointTransform::Source
vtkDataSet * Source
Definition: vtkIterativeClosestPointTransform.h:179
vtkIterativeClosestPointTransform::ReleaseTarget
void ReleaseTarget(void)
vtkIterativeClosestPointTransform::NumberOfIterations
int NumberOfIterations
Definition: vtkIterativeClosestPointTransform.h:189
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkIterativeClosestPointTransform::SetSource
void SetSource(vtkDataSet *source)
VTK_ICP_MODE_RMS
#define VTK_ICP_MODE_RMS
Definition: vtkIterativeClosestPointTransform.h:47
vtkLinearTransform
abstract superclass for linear transformations
Definition: vtkLinearTransform.h:34
vtkIterativeClosestPointTransform::MaximumNumberOfLandmarks
int MaximumNumberOfLandmarks
Definition: vtkIterativeClosestPointTransform.h:186
vtkIterativeClosestPointTransform::GetMTime
unsigned long int GetMTime()
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkIterativeClosestPointTransform::MakeTransform
vtkAbstractTransform * MakeTransform()
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkIterativeClosestPointTransform::InternalDeepCopy
void InternalDeepCopy(vtkAbstractTransform *transform)
vtkIterativeClosestPointTransform::Locator
vtkCellLocator * Locator
Definition: vtkIterativeClosestPointTransform.h:181
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkIterativeClosestPointTransform::ReleaseSource
void ReleaseSource(void)
vtkIterativeClosestPointTransform::MaximumNumberOfIterations
int MaximumNumberOfIterations
Definition: vtkIterativeClosestPointTransform.h:182
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
VTK_ICP_MODE_AV
#define VTK_ICP_MODE_AV
Definition: vtkIterativeClosestPointTransform.h:48
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkIterativeClosestPointTransform::vtkIterativeClosestPointTransform
vtkIterativeClosestPointTransform()
vtkIterativeClosestPointTransform::SetLocator
void SetLocator(vtkCellLocator *locator)
vtkIterativeClosestPointTransform::MaximumMeanDistance
double MaximumMeanDistance
Definition: vtkIterativeClosestPointTransform.h:185
vtkIterativeClosestPointTransform::SetMeanDistanceModeToRMS
void SetMeanDistanceModeToRMS()
Definition: vtkIterativeClosestPointTransform.h:104
vtkIterativeClosestPointTransform::InternalUpdate
void InternalUpdate()
vtkIterativeClosestPointTransform::MeanDistance
double MeanDistance
Definition: vtkIterativeClosestPointTransform.h:190
vtkIterativeClosestPointTransform
Implementation of the ICP algorithm.
Definition: vtkIterativeClosestPointTransform.h:55
VTKCOMMONDATAMODEL_EXPORT
#define VTKCOMMONDATAMODEL_EXPORT
Definition: vtkCommonDataModelModule.h:15
vtkIterativeClosestPointTransform::LandmarkTransform
vtkLandmarkTransform * LandmarkTransform
Definition: vtkIterativeClosestPointTransform.h:191
vtkgl::transform
GLuint GLenum GLenum transform
Definition: vtkgl.h:16451
target
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:828
vtkIterativeClosestPointTransform::Inverse
void Inverse()
vtkIterativeClosestPointTransform::CreateDefaultLocator
void CreateDefaultLocator(void)
vtkIterativeClosestPointTransform::New
static vtkIterativeClosestPointTransform * New()
vtkIterativeClosestPointTransform::CheckMeanDistance
int CheckMeanDistance
Definition: vtkIterativeClosestPointTransform.h:183
vtkLandmarkTransform
a linear transform specified by two corresponding point sets
Definition: vtkLandmarkTransform.h:42
vtkIterativeClosestPointTransform::GetMeanDistanceModeAsString
const char * GetMeanDistanceModeAsString()
vtkIterativeClosestPointTransform::SetTarget
void SetTarget(vtkDataSet *target)