pub trait AbstractIsometry<T: RealField, const N: usize> {
type RotType: AbstractRotation<T, N> + Copy;
// Required method
fn update_transform(
old_transform: &Isometry<T, Self::RotType, N>,
mean_a: Point<T, N>,
mean_b: Point<T, N>,
rot_mat: &SMatrix<T, N, N>,
) -> Isometry<T, Self::RotType, N>;
}
Expand description
This trait acts as an abstraction for the process of creating an Isometry
matrix from a NxN SVD,
without having to constrain every function by a million traits.
Required Associated Types§
Sourcetype RotType: AbstractRotation<T, N> + Copy
type RotType: AbstractRotation<T, N> + Copy
This type is a placeholder for either UnitComplex
or UnitQuaternion
depending on number of dimensions.
Required Methods§
Sourcefn update_transform(
old_transform: &Isometry<T, Self::RotType, N>,
mean_a: Point<T, N>,
mean_b: Point<T, N>,
rot_mat: &SMatrix<T, N, N>,
) -> Isometry<T, Self::RotType, N>
fn update_transform( old_transform: &Isometry<T, Self::RotType, N>, mean_a: Point<T, N>, mean_b: Point<T, N>, rot_mat: &SMatrix<T, N, N>, ) -> Isometry<T, Self::RotType, N>
This function receives the old transform, the centroids of both point clouds, and the covariance rotation mat
It then performs SVD
on the covariance matrix, and uses the resulting matrics
and the translation between the two points to construct a new transform.
This transform is multiplied by the old transform, and the result is returned
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.