#include "MRMeshFwd.h"
#include "MRAffineXf.h"
#include "MRId.h"
#include "MRMeshOrPoints.h"
#include "MRVector3.h"
Go to the source code of this file.
Classes | |
struct | MRICPPairData |
struct | MRPointPair |
Stores a pair of points: one samples on the source and the closest to it on the target. More... | |
struct | MRICPProperties |
Typedefs | |
typedef MR_EXTERN_C_BEGIN enum MRICPMethod | MRICPMethod |
The method how to update transformation from point pairs. | |
typedef enum MRICPMode | MRICPMode |
The group of transformations, each with its own degrees of freedom. | |
typedef struct MRICPPairData | MRICPPairData |
typedef struct MRPointPair | MRPointPair |
Stores a pair of points: one samples on the source and the closest to it on the target. | |
typedef struct MRIPointPairs | MRIPointPairs |
Simple interface for pairs holder. | |
typedef struct MRPointPairs | MRPointPairs |
typedef enum MRICPExitType | MRICPExitType |
types of exit conditions in calculation | |
typedef struct MRICPProperties | MRICPProperties |
typedef struct MRICP | MRICP |
Enumerations | |
enum | MRICPMethod { MRICPMethodCombined = 0 , MRICPMethodPointToPoint = 1 , MRICPMethodPointToPlane = 2 } |
The method how to update transformation from point pairs. More... | |
enum | MRICPMode { MRICPModeRigidScale = 0 , MRICPModeAnyRigidXf , MRICPModeOrthogonalAxis , MRICPModeFixedAxis , MRICPModeTranslationOnly } |
The group of transformations, each with its own degrees of freedom. More... | |
enum | MRICPExitType { MRICPExitTypeNotStarted = 0 , MRICPExitTypeNotFoundSolution , MRICPExitTypeMaxIterations , MRICPExitTypeMaxBadIterations , MRICPExitTypeStopMsdReached } |
types of exit conditions in calculation More... | |
Functions | |
MRMESHC_API const MRICPPairData * | mrIPointPairsGet (const MRIPointPairs *pp, size_t idx) |
MRMESHC_API size_t | mrIPointPairsSize (const MRIPointPairs *pp) |
MRMESHC_API MRICPPairData * | mrIPointPairsGetRef (MRIPointPairs *pp, size_t idx) |
MRMESHC_API MRICPProperties | mrICPPropertiesNew (void) |
initializes a default instance | |
MRMESHC_API MRICP * | mrICPNew (const MRMeshOrPointsXf *flt, const MRMeshOrPointsXf *ref, float samplingVoxelSize) |
Constructs ICP framework with automatic points sampling on both objects. | |
MRMESHC_API MRICP * | mrICPNewFromSamples (const MRMeshOrPointsXf *flt, const MRMeshOrPointsXf *ref, const MRVertBitSet *fltSamples, const MRVertBitSet *refSamples) |
Constructs ICP framework with given sample points on both objects. | |
MRMESHC_API void | mrICPSetParams (MRICP *icp, const MRICPProperties *prop) |
tune algorithm params before run calculateTransformation() | |
MRMESHC_API void | mrICPSamplePoints (MRICP *icp, float samplingVoxelSize) |
select pairs with origin samples on both objects | |
MRMESHC_API MRAffineXf3f | mrICPAutoSelectFloatXf (MRICP *icp) |
MRMESHC_API void | mrICPUpdatePointPairs (MRICP *icp) |
recompute point pairs after manual change of transformations or parameters | |
MRMESHC_API MRString * | mrICPGetStatusInfo (const MRICP *icp) |
returns status info string | |
MRMESHC_API size_t | mrICPGetNumSamples (const MRICP *icp) |
computes the number of samples able to form pairs | |
MRMESHC_API size_t | mrICPGetNumActivePairs (const MRICP *icp) |
computes the number of active point pairs | |
MRMESHC_API float | mrICPGetMeanSqDistToPoint (const MRICP *icp) |
computes root-mean-square deviation between points | |
MRMESHC_API float | mrICPGetMeanSqDistToPlane (const MRICP *icp) |
computes root-mean-square deviation from points to target planes | |
MRMESHC_API const MRIPointPairs * | mrICPGetFlt2RefPairs (const MRICP *icp) |
returns current pairs formed from samples on floating object and projections on reference object | |
MRMESHC_API const MRIPointPairs * | mrICPGetRef2FltPairs (const MRICP *icp) |
returns current pairs formed from samples on reference object and projections on floating object | |
MRMESHC_API MRAffineXf3f | mrICPCalculateTransformation (MRICP *icp) |
MRMESHC_API void | mrICPFree (MRICP *icp) |
deallocates an ICP object | |
This class allows you to register two object with similar shape using Iterative Closest Points (ICP) point-to-point or point-to-plane algorithms
typedef enum MRICPExitType MRICPExitType |
types of exit conditions in calculation
typedef MR_EXTERN_C_BEGIN enum MRICPMethod MRICPMethod |
The method how to update transformation from point pairs.
The group of transformations, each with its own degrees of freedom.
typedef struct MRICPPairData MRICPPairData |
typedef struct MRICPProperties MRICPProperties |
typedef struct MRIPointPairs MRIPointPairs |
Simple interface for pairs holder.
typedef struct MRPointPair MRPointPair |
Stores a pair of points: one samples on the source and the closest to it on the target.
typedef struct MRPointPairs MRPointPairs |
enum MRICPExitType |
types of exit conditions in calculation
enum MRICPMethod |
The method how to update transformation from point pairs.
enum MRICPMode |
The group of transformations, each with its own degrees of freedom.
MRMESHC_API MRAffineXf3f mrICPAutoSelectFloatXf | ( | MRICP * | icp | ) |
automatically selects initial transformation for the floating object based on covariance matrices of both floating and reference objects; applies the transformation to the floating object and returns it
MRMESHC_API MRAffineXf3f mrICPCalculateTransformation | ( | MRICP * | icp | ) |
runs ICP algorithm given input objects, transformations, and parameters;
MRMESHC_API void mrICPFree | ( | MRICP * | icp | ) |
deallocates an ICP object
MRMESHC_API const MRIPointPairs * mrICPGetFlt2RefPairs | ( | const MRICP * | icp | ) |
returns current pairs formed from samples on floating object and projections on reference object
MRMESHC_API float mrICPGetMeanSqDistToPlane | ( | const MRICP * | icp | ) |
computes root-mean-square deviation from points to target planes
MRMESHC_API float mrICPGetMeanSqDistToPoint | ( | const MRICP * | icp | ) |
computes root-mean-square deviation between points
MRMESHC_API size_t mrICPGetNumActivePairs | ( | const MRICP * | icp | ) |
computes the number of active point pairs
MRMESHC_API size_t mrICPGetNumSamples | ( | const MRICP * | icp | ) |
computes the number of samples able to form pairs
MRMESHC_API const MRIPointPairs * mrICPGetRef2FltPairs | ( | const MRICP * | icp | ) |
returns current pairs formed from samples on reference object and projections on floating object
MRMESHC_API MRString * mrICPGetStatusInfo | ( | const MRICP * | icp | ) |
returns status info string
MRMESHC_API MRICP * mrICPNew | ( | const MRMeshOrPointsXf * | flt, |
const MRMeshOrPointsXf * | ref, | ||
float | samplingVoxelSize ) |
Constructs ICP framework with automatic points sampling on both objects.
MRMESHC_API MRICP * mrICPNewFromSamples | ( | const MRMeshOrPointsXf * | flt, |
const MRMeshOrPointsXf * | ref, | ||
const MRVertBitSet * | fltSamples, | ||
const MRVertBitSet * | refSamples ) |
Constructs ICP framework with given sample points on both objects.
MRMESHC_API MRICPProperties mrICPPropertiesNew | ( | void | ) |
initializes a default instance
MRMESHC_API void mrICPSamplePoints | ( | MRICP * | icp, |
float | samplingVoxelSize ) |
select pairs with origin samples on both objects
MRMESHC_API void mrICPSetParams | ( | MRICP * | icp, |
const MRICPProperties * | prop ) |
tune algorithm params before run calculateTransformation()
MRMESHC_API void mrICPUpdatePointPairs | ( | MRICP * | icp | ) |
recompute point pairs after manual change of transformations or parameters
MRMESHC_API const MRICPPairData * mrIPointPairsGet | ( | const MRIPointPairs * | pp, |
size_t | idx ) |
MRMESHC_API MRICPPairData * mrIPointPairsGetRef | ( | MRIPointPairs * | pp, |
size_t | idx ) |
MRMESHC_API size_t mrIPointPairsSize | ( | const MRIPointPairs * | pp | ) |