MeshLib C Docs
Loading...
Searching...
No Matches
MRICPEnums.h File Reference
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef int32_t MR_ICPMethod
 The method how to update transformation from point pairs.
 
typedef int32_t MR_ICPMode
 The group of transformations, each with its own degrees of freedom.
 
typedef int32_t MR_ICPExitType
 

Enumerations

enum  { MR_ICPMethod_Combined = 0 , MR_ICPMethod_PointToPoint = 1 , MR_ICPMethod_PointToPlane = 2 }
 
enum  {
  MR_ICPMode_RigidScale = 0 , MR_ICPMode_AnyRigidXf = 1 , MR_ICPMode_OrthogonalAxis = 2 , MR_ICPMode_FixedAxis = 3 ,
  MR_ICPMode_TranslationOnly = 4
}
 
enum  {
  MR_ICPExitType_NotStarted = 0 , MR_ICPExitType_NotFoundSolution = 1 , MR_ICPExitType_MaxIterations = 2 , MR_ICPExitType_MaxBadIterations = 3 ,
  MR_ICPExitType_StopMsdReached = 4
}
 

Typedef Documentation

◆ MR_ICPExitType

typedef int32_t MR_ICPExitType

◆ MR_ICPMethod

typedef int32_t MR_ICPMethod

The method how to update transformation from point pairs.

◆ MR_ICPMode

typedef int32_t MR_ICPMode

The group of transformations, each with its own degrees of freedom.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MR_ICPMethod_Combined 

PointToPoint for the first 2 iterations, and PointToPlane for the remaining iterations.

select transformation that minimizes mean squared distance between two points in each pair, it is the safest approach but can converge slowly

MR_ICPMethod_PointToPoint 

select transformation that minimizes mean squared distance between a point and a plane via the other point in each pair, converge much faster than PointToPoint in case of many good (with not all points/normals in one plane) pairs This mode only works correctly if the object that points are being projected onto has normals information (is not a point clouds without normals). By default both objects are projected onto each other, so at least one of them must have normals, unless you change the settings to only project one way (using MR::ICP::setFltSamples() or MR::ICP::setRefSamples()), in which case the object being projected onto must have normals.

MR_ICPMethod_PointToPlane 

◆ anonymous enum

anonymous enum
Enumerator
MR_ICPMode_RigidScale 

rigid body transformation with uniform scaling (7 degrees of freedom)

rigid body transformation (6 degrees of freedom)

MR_ICPMode_AnyRigidXf 

rigid body transformation with rotation except argument axis (5 degrees of freedom)

MR_ICPMode_OrthogonalAxis 

rigid body transformation with rotation around given axis only (4 degrees of freedom)

MR_ICPMode_FixedAxis 

only translation (3 degrees of freedom)

MR_ICPMode_TranslationOnly 

◆ anonymous enum

anonymous enum
Enumerator
MR_ICPExitType_NotStarted 
MR_ICPExitType_NotFoundSolution 
MR_ICPExitType_MaxIterations 
MR_ICPExitType_MaxBadIterations 
MR_ICPExitType_StopMsdReached