MeshLib
 
Loading...
Searching...
No Matches
MRMultiwayICP.h File Reference
#include "MRMeshFwd.h"
#include "MRGridSampling.h"
#include "MRICP.h"
#include "MRVector.h"

Go to the source code of this file.

Classes

struct  MRMultiwayICPSamplingParameters
 Parameters that are used for sampling of the MultiwayICP objects. More...
 

Typedefs

typedef MR_EXTERN_C_BEGIN enum MRMultiwayICPSamplingParametersCascadeMode MRMultiwayICPSamplingParametersCascadeMode
 
typedef struct MRMultiwayICPSamplingParameters MRMultiwayICPSamplingParameters
 Parameters that are used for sampling of the MultiwayICP objects.
 
typedef struct MRMultiwayICP MRMultiwayICP
 

Enumerations

enum  MRMultiwayICPSamplingParametersCascadeMode { MRMultiwayICPSamplingParametersCascadeModeSequential = 0 , MRMultiwayICPSamplingParametersCascadeModeABBTreeBased }
 

Functions

MRMESHC_API MRMultiwayICPSamplingParameters mrMultiwayIcpSamplingParametersNew (void)
 initializes a default instance
 
MRMESHC_API MRMultiwayICPmrMultiwayICPNew (const MRMeshOrPointsXf *objects, size_t objectsNum, const MRMultiwayICPSamplingParameters *samplingParams)
 
MRMESHC_API MRVectorAffineXf3fmrMultiwayICPCalculateTransformations (MRMultiwayICP *mwicp, MRProgressCallback cb)
 
MRMESHC_API bool mrMultiwayICPResamplePoints (MRMultiwayICP *mwicp, const MRMultiwayICPSamplingParameters *samplingParams)
 select pairs with origin samples on all objects
 
MRMESHC_API bool mrMultiwayICPUpdateAllPointPairs (MRMultiwayICP *mwicp, MRProgressCallback cb)
 
MRMESHC_API void mrMultiwayICPSetParams (MRMultiwayICP *mwicp, const MRICPProperties *prop)
 tune algorithm params before run calculateTransformations()
 
MRMESHC_API float mrMultiWayICPGetMeanSqDistToPoint (const MRMultiwayICP *mwicp, double *value)
 
MRMESHC_API float mrMultiWayICPGetMeanSqDistToPlane (const MRMultiwayICP *mwicp, double *value)
 
MRMESHC_API size_t mrMultiWayICPGetNumSamples (const MRMultiwayICP *mwicp)
 computes the number of samples able to form pairs
 
MRMESHC_API size_t mrMultiWayICPGetNumActivePairs (const MRMultiwayICP *mwicp)
 computes the number of active point pairs
 
MRMESHC_API void mrMultiwayICPFree (MRMultiwayICP *mwicp)
 deallocates a MultiwayICP object
 

Typedef Documentation

◆ MRMultiwayICP

typedef struct MRMultiwayICP MRMultiwayICP

This class allows you to register many objects having similar parts and known initial approximations of orientations/locations using Iterative Closest Points (ICP) point-to-point or point-to-plane algorithms

◆ MRMultiwayICPSamplingParameters

typedef struct MRMultiwayICPSamplingParameters MRMultiwayICPSamplingParameters

Parameters that are used for sampling of the MultiwayICP objects.

◆ MRMultiwayICPSamplingParametersCascadeMode

Enumeration Type Documentation

◆ MRMultiwayICPSamplingParametersCascadeMode

Enumerator
MRMultiwayICPSamplingParametersCascadeModeSequential 

separates objects on groups based on their index in ICPObjects (good if all objects about the size of all objects together)

MRMultiwayICPSamplingParametersCascadeModeABBTreeBased 

builds AABB tree based on each object bounding box and separates subtrees (good if each object much smaller then all objects together)

Function Documentation

◆ mrMultiwayICPCalculateTransformations()

MRMESHC_API MRVectorAffineXf3f * mrMultiwayICPCalculateTransformations ( MRMultiwayICP * mwicp,
MRProgressCallback cb )

runs ICP algorithm given input objects, transformations, and parameters;

Returns
adjusted transformations of all objects to reach registered state

◆ mrMultiwayICPFree()

MRMESHC_API void mrMultiwayICPFree ( MRMultiwayICP * mwicp)

deallocates a MultiwayICP object

◆ mrMultiWayICPGetMeanSqDistToPlane()

MRMESHC_API float mrMultiWayICPGetMeanSqDistToPlane ( const MRMultiwayICP * mwicp,
double * value )

computes root-mean-square deviation from points to target planes or the standard deviation from given value if present

◆ mrMultiWayICPGetMeanSqDistToPoint()

MRMESHC_API float mrMultiWayICPGetMeanSqDistToPoint ( const MRMultiwayICP * mwicp,
double * value )

computes root-mean-square deviation between points or the standard deviation from given value if present

◆ mrMultiWayICPGetNumActivePairs()

MRMESHC_API size_t mrMultiWayICPGetNumActivePairs ( const MRMultiwayICP * mwicp)

computes the number of active point pairs

◆ mrMultiWayICPGetNumSamples()

MRMESHC_API size_t mrMultiWayICPGetNumSamples ( const MRMultiwayICP * mwicp)

computes the number of samples able to form pairs

◆ mrMultiwayICPNew()

MRMESHC_API MRMultiwayICP * mrMultiwayICPNew ( const MRMeshOrPointsXf * objects,
size_t objectsNum,
const MRMultiwayICPSamplingParameters * samplingParams )

◆ mrMultiwayICPResamplePoints()

MRMESHC_API bool mrMultiwayICPResamplePoints ( MRMultiwayICP * mwicp,
const MRMultiwayICPSamplingParameters * samplingParams )

select pairs with origin samples on all objects

◆ mrMultiwayIcpSamplingParametersNew()

MRMESHC_API MRMultiwayICPSamplingParameters mrMultiwayIcpSamplingParametersNew ( void )

initializes a default instance

◆ mrMultiwayICPSetParams()

MRMESHC_API void mrMultiwayICPSetParams ( MRMultiwayICP * mwicp,
const MRICPProperties * prop )

tune algorithm params before run calculateTransformations()

◆ mrMultiwayICPUpdateAllPointPairs()

MRMESHC_API bool mrMultiwayICPUpdateAllPointPairs ( MRMultiwayICP * mwicp,
MRProgressCallback cb )

in each pair updates the target data and performs basic filtering (activation) in cascade mode only useful for stats update