pub fn icp(
points: &[[f64; 3]],
fixed: &Mesh,
bvh: &Bvh,
initial: &Rigid,
options: &IcpOptions,
) -> Result<IcpReport>Expand description
Aligns points to the mesh fixed by rigid, point-to-plane ICP, starting
from initial. See the module docs.
The report’s transform maps the points to fixed’s local coordinates (the
stored f32 positions, without the origin). The correspondence search
rounds moved points to f32; the distances the solver minimises and reports
are computed in f64. Results do not depend on the parallel feature or the
thread count. The determination check adds a bounded cost: up to 12 restarts
of up to 12 steps on at most 10,000 points.
§Errors
OpsError::InvalidInput for no points, non-finite points, a fixed mesh
without triangles, or an invalid option; OpsError::Query for an invalid
initial, one that takes a point out of f32 range, or a bvh that does
not match fixed; OpsError::Store when out of memory.