template<typename TransformationModel>
class ImFusion::ICPCore< TransformationModel >
Core Iterative Closest Point (ICP) algorithm for point set registration.
Iteratively aligns two point sets by finding nearest neighbor correspondences and fitting transformations until convergence. The transformation model is injected via template parameter, allowing for single or per-object transformations.
- Template Parameters
-
| TransformationModel | The transformation fitting strategy (must provide Hypothesis type and init/fit/apply methods) |
|
|
| ICPCore (TransformationModel &transformationModel, const std::vector< PointsWithMetadata > &ptsFixed, std::vector< PointsWithMetadata > &ptsMoving) |
|
| ICPCore (const ICPCore &)=delete |
| | disable copy, enable move
|
|
ICPCore & | operator= (const ICPCore &)=delete |
|
| ICPCore (ICPCore &&)=default |
|
ICPCore & | operator= (ICPCore &&)=default |
|
void | initCaches () |
| | Initialize nearest neighbor search structures and correspondence caches.
|
| Hypothesis | singleIteration (const Hypothesis ¤tHypothesis) |
| | Perform one ICP iteration: find correspondences and fit transformation.
|
| void | compute () |
| | Run the complete ICP algorithm until convergence or max iterations.
|
| virtual void | configure (const Properties *p) |
| | Configure this object instance by de-serializing the given Properties.
|
| virtual void | configuration (Properties *p) const |
| | Serialize the current object configuration into the given Properties object.
|
| virtual void | configureDefaults () |
| | Retrieve the properties of this object, replaces values with their defaults and sets it again.
|
|
void | registerParameter (ParameterBase *param) |
| | Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
|
|
void | unregisterParameter (const ParameterBase *param) |
| | Remove the given Parameter or SubProperty from the list of registered parameters.
|
|
| Configurable (const Configurable &rhs) |
|
| Configurable (Configurable &&rhs) noexcept |
|
Configurable & | operator= (const Configurable &) |
|
Configurable & | operator= (Configurable &&) noexcept |