pub fn icp<T, const N: usize>(
points_a: &[Point<T, N>],
points_b: &[Point<T, N>],
config: ICPConfiguration<T>,
) -> ICPResult<T, <IsometryAbstractor<T, N> as AbstractIsometry<T, N>>::RotType, N>where
T: Bounded + Copy + Default + IsNan + RealField + Sum,
usize: AsPrimitive<T>,
IsometryAbstractor<T, N>: AbstractIsometry<T, N>,
Expand description
A free-form version of the ICP function, allowing for any input and output, under the constraints of the function
§Arguments
points_a
: A slice ofPoint
, representing the source point cloud.points_b
: A slice ofPoint
, representing the target point cloud.config
: a reference to anICPConfiguration
, specifying the behaviour of the algorithm.
§Generics
§Returns
An ICPSuccess
struct with an Isometry
transform with a T
precision, or an error message explaining what went wrong.
This does not guarantee that the transformation is correct, only that no further benefit can be gained by running another iteration. ↩