Trait AbstractIsometry

Source
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§

Source

type RotType: AbstractRotation<T, N> + Copy

This type is a placeholder for either UnitComplex or UnitQuaternion depending on number of dimensions.

Required Methods§

Source

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.

Implementors§