#include <MRMultiwayICP.h>
Public Types | |
using | PairsPerLayer = Vector<ICPPairsGrid, ICPLayer> |
Public Member Functions | |
MRMESH_API | MultiwayICP (const ICPObjects &objects, const MultiwayICPSamplingParameters &samplingParams) |
MRMESH_API Vector< AffineXf3f, ObjId > | calculateTransformations (ProgressCallback cb={}) |
MRMESH_API Vector< AffineXf3f, ObjId > | calculateTransformationsFixFirst (ProgressCallback cb={}) |
MRMESH_API bool | resamplePoints (const MultiwayICPSamplingParameters &samplingParams) |
select pairs with origin samples on all objects | |
MRMESH_API bool | updateAllPointPairs (ProgressCallback cb={}) |
void | setParams (const ICPProperties &prop) |
tune algorithm params before run calculateTransformations() | |
const ICPProperties & | getParams () const |
MRMESH_API float | getMeanSqDistToPoint (double *value=nullptr) const |
MRMESH_API float | getMeanSqDistToPlane (double *value=nullptr) const |
MRMESH_API size_t | getNumSamples () const |
computes the number of samples able to form pairs | |
MRMESH_API size_t | getNumActivePairs () const |
computes the number of active point pairs | |
void | setPerIterationCallback (std::function< void(int inter)> callback) |
sets callback that will be called for each iteration | |
bool | devIndependentEquationsModeEnabled () const |
void | devEnableIndependentEquationsMode (bool on) |
MRMESH_API std::string | getStatusInfo () const |
returns status info string | |
const PairsPerLayer & | getPairsPerLayer () const |
returns all pairs of all layers | |
const IICPTreeIndexer * | getCascadeIndexer () const |
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
MRMESH_API MR::MultiwayICP::MultiwayICP | ( | const ICPObjects & | objects, |
const MultiwayICPSamplingParameters & | samplingParams ) |
|
nodiscard |
runs ICP algorithm given input objects, transformations, and parameters;
|
nodiscard |
runs ICP algorithm given input objects, transformations, and parameters;
|
inline |
|
inline |
if in independent equations mode - creates separate equation system for each object otherwise creates single large equation system for all objects
|
inline |
returns pointer to class that is used to navigate among layers of cascade registration if nullptr - cascade mode is not used
|
nodiscard |
computes root-mean-square deviation from points to target planes or the standard deviation from given value if present
|
nodiscard |
computes root-mean-square deviation between points or the standard deviation from given value if present
|
nodiscard |
computes the number of active point pairs
|
nodiscard |
computes the number of samples able to form pairs
|
inline |
returns all pairs of all layers
|
inlinenodiscard |
|
nodiscard |
returns status info string
MRMESH_API bool MR::MultiwayICP::resamplePoints | ( | const MultiwayICPSamplingParameters & | samplingParams | ) |
select pairs with origin samples on all objects
|
inline |
tune algorithm params before run calculateTransformations()
|
inline |
sets callback that will be called for each iteration
MRMESH_API bool MR::MultiwayICP::updateAllPointPairs | ( | ProgressCallback | cb = {} | ) |
in each pair updates the target data and performs basic filtering (activation) in cascade mode only useful for stats update