pub enum ICPError<T: Scalar, const N: usize> {
SourcePointCloudEmpty,
TargetPointCloudEmpty,
NoNearestNeighbour,
IterationNumIsZero,
MSEIntervalThreshold,
MSEAbsoluteThreshold,
IterationDidNotConverge((Point<T, N>, Point<T, N>)),
AlrogithmDidNotConverge,
}
Expand description
An error type containing the various errors that might arise during an ICP algorithm, when compiling with the std
feature, it will also derive thiserror::Error
.
Variants§
SourcePointCloudEmpty
The source point cloud is empty.
TargetPointCloudEmpty
The target point cloud is empty.
NoNearestNeighbour
A source point had no nearest neighbour in the target point cloud.
IterationNumIsZero
The amount of iterations was set to zero.
MSEIntervalThreshold
The Mean Squared Error interval threshold was set to zero.
MSEAbsoluteThreshold
The Mean Squared Error absolute threshold was set to zero.
IterationDidNotConverge((Point<T, N>, Point<T, N>))
The Current iteration did not converge, returns the current mean points.
AlrogithmDidNotConverge
The algorithm did not converge after the maximum amount of iterations.
Trait Implementations§
Source§impl<T: Scalar, const N: usize> Error for ICPError<T, N>
impl<T: Scalar, const N: usize> Error for ICPError<T, N>
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
impl<T: Copy + Scalar, const N: usize> Copy for ICPError<T, N>
impl<T: Eq + Scalar, const N: usize> Eq for ICPError<T, N>
impl<T: Scalar, const N: usize> StructuralPartialEq for ICPError<T, N>
Auto Trait Implementations§
impl<T, const N: usize> Freeze for ICPError<T, N>where
T: Freeze,
impl<T, const N: usize> RefUnwindSafe for ICPError<T, N>where
T: RefUnwindSafe,
impl<T, const N: usize> Send for ICPError<T, N>where
T: Send,
impl<T, const N: usize> Sync for ICPError<T, N>where
T: Sync,
impl<T, const N: usize> Unpin for ICPError<T, N>where
T: Unpin,
impl<T, const N: usize> UnwindSafe for ICPError<T, N>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.