|
virtual int | IsA (const char *type) |
|
vtkIterativeClosestPointTransform * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
void | Inverse () |
|
vtkAbstractTransform * | MakeTransform () |
|
|
void | SetSource (vtkDataSet *source) |
|
void | SetTarget (vtkDataSet *target) |
|
virtual vtkDataSet * | GetSource () |
|
virtual vtkDataSet * | GetTarget () |
|
|
void | SetLocator (vtkCellLocator *locator) |
|
virtual vtkCellLocator * | GetLocator () |
|
|
virtual void | SetMaximumNumberOfIterations (int) |
|
virtual int | GetMaximumNumberOfIterations () |
|
|
virtual int | GetNumberOfIterations () |
|
|
virtual void | SetCheckMeanDistance (int) |
|
virtual int | GetCheckMeanDistance () |
|
virtual void | CheckMeanDistanceOn () |
|
virtual void | CheckMeanDistanceOff () |
|
|
virtual void | SetMeanDistanceMode (int) |
|
virtual int | GetMeanDistanceMode () |
|
void | SetMeanDistanceModeToRMS () |
|
void | SetMeanDistanceModeToAbsoluteValue () |
|
const char * | GetMeanDistanceModeAsString () |
|
|
virtual void | SetMaximumMeanDistance (double) |
|
virtual double | GetMaximumMeanDistance () |
|
|
virtual double | GetMeanDistance () |
|
|
virtual void | SetMaximumNumberOfLandmarks (int) |
|
virtual int | GetMaximumNumberOfLandmarks () |
|
|
virtual void | SetStartByMatchingCentroids (int) |
|
virtual int | GetStartByMatchingCentroids () |
|
virtual void | StartByMatchingCentroidsOn () |
|
virtual void | StartByMatchingCentroidsOff () |
|
|
virtual vtkLandmarkTransform * | GetLandmarkTransform () |
|
vtkLinearTransform * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
void | TransformPoints (vtkPoints *inPts, vtkPoints *outPts) |
|
virtual void | TransformNormals (vtkDataArray *inNms, vtkDataArray *outNms) |
|
virtual void | TransformVectors (vtkDataArray *inVrs, vtkDataArray *outVrs) |
|
void | TransformNormal (const float in[3], float out[3]) |
|
void | TransformNormal (const double in[3], double out[3]) |
|
double * | TransformNormal (double x, double y, double z) |
|
double * | TransformNormal (const double normal[3]) |
|
float * | TransformFloatNormal (float x, float y, float z) |
|
float * | TransformFloatNormal (const float normal[3]) |
|
double * | TransformDoubleNormal (double x, double y, double z) |
|
double * | TransformDoubleNormal (const double normal[3]) |
|
double * | TransformVector (double x, double y, double z) |
|
double * | TransformVector (const double normal[3]) |
|
void | TransformVector (const float in[3], float out[3]) |
|
void | TransformVector (const double in[3], double out[3]) |
|
float * | TransformFloatVector (float x, float y, float z) |
|
float * | TransformFloatVector (const float vec[3]) |
|
double * | TransformDoubleVector (double x, double y, double z) |
|
double * | TransformDoubleVector (const double vec[3]) |
|
void | TransformPointsNormalsVectors (vtkPoints *inPts, vtkPoints *outPts, vtkDataArray *inNms, vtkDataArray *outNms, vtkDataArray *inVrs, vtkDataArray *outVrs) |
|
vtkLinearTransform * | GetLinearInverse () |
|
void | InternalTransformPoint (const float in[3], float out[3]) |
|
void | InternalTransformPoint (const double in[3], double out[3]) |
|
virtual void | InternalTransformNormal (const float in[3], float out[3]) |
|
virtual void | InternalTransformNormal (const double in[3], double out[3]) |
|
virtual void | InternalTransformVector (const float in[3], float out[3]) |
|
virtual void | InternalTransformVector (const double in[3], double out[3]) |
|
void | InternalTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
void | InternalTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
vtkHomogeneousTransform * | NewInstance () const |
|
void | GetMatrix (vtkMatrix4x4 *m) |
|
vtkMatrix4x4 * | GetMatrix () |
|
vtkHomogeneousTransform * | GetHomogeneousInverse () |
|
vtkAbstractTransform * | NewInstance () const |
|
double * | TransformNormalAtPoint (const double point[3], const double normal[3]) |
|
double * | TransformVectorAtPoint (const double point[3], const double vector[3]) |
|
vtkAbstractTransform * | GetInverse () |
|
void | SetInverse (vtkAbstractTransform *transform) |
|
void | DeepCopy (vtkAbstractTransform *) |
|
void | Update () |
|
virtual int | CircuitCheck (vtkAbstractTransform *transform) |
|
unsigned long | GetMTime () |
|
virtual void | UnRegister (vtkObjectBase *O) |
|
void | TransformPoint (const float in[3], float out[3]) |
|
void | TransformPoint (const double in[3], double out[3]) |
|
double * | TransformPoint (double x, double y, double z) |
|
double * | TransformPoint (const double point[3]) |
|
float * | TransformFloatPoint (float x, float y, float z) |
|
float * | TransformFloatPoint (const float point[3]) |
|
double * | TransformDoublePoint (double x, double y, double z) |
|
double * | TransformDoublePoint (const double point[3]) |
|
void | TransformNormalAtPoint (const float point[3], const float in[3], float out[3]) |
|
void | TransformNormalAtPoint (const double point[3], const double in[3], double out[3]) |
|
double * | TransformDoubleNormalAtPoint (const double point[3], const double normal[3]) |
|
float * | TransformFloatNormalAtPoint (const float point[3], const float normal[3]) |
|
void | TransformVectorAtPoint (const float point[3], const float in[3], float out[3]) |
|
void | TransformVectorAtPoint (const double point[3], const double in[3], double out[3]) |
|
double * | TransformDoubleVectorAtPoint (const double point[3], const double vector[3]) |
|
float * | TransformFloatVectorAtPoint (const float point[3], const float vector[3]) |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
virtual void | Register (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
Implementation of the ICP algorithm.
Match two surfaces using the iterative closest point (ICP) algorithm. The core of the algorithm is to match each vertex in one surface with the closest surface point on the other, then apply the transformation that modify one surface to best match the other (in a least square sense). This has to be iterated to get proper convergence of the surfaces.
- Attention
- Use vtkTransformPolyDataFilter to apply the resulting ICP transform to your data. You might also set it to your actor's user transform.
-
This class makes use of vtkLandmarkTransform internally to compute the best fit. Use the GetLandmarkTransform member to get a pointer to that transform and set its parameters. You might, for example, constrain the number of degrees of freedom of the solution (i.e. rigid body, similarity, etc.) by checking the vtkLandmarkTransform documentation for its SetMode member.
- See also
- vtkLandmarkTransform
- Tests:
- vtkIterativeClosestPointTransform (Tests)
Definition at line 54 of file vtkIterativeClosestPointTransform.h.