isometry_alias.rs - source
Description: Source of the Rust file `/Users/erlendbasso/.cargo/registry/src/github.com-1ecc6299db9ec823/nalgebra-0.32.1/src/geometry/isometry_alias.rs`.
Keywords: rust, rustlang, rust-lang

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

    use crate::geometry::{Isometry, Rotation2, Rotation3, UnitComplex, UnitQuaternion};

    /// A 2-dimensional direct isometry using a unit complex number for its rotational part.
    ///
    /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.**
    ///
    /// Also known as a 2D rigid-body motion, or as an element of SE(2).

    pub type Isometry2<T> = Isometry<T, UnitComplex<T>, 2>;

    /// A 3-dimensional direct isometry using a unit quaternion for its rotational part.
    ///
    /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.**
    ///
    /// Also known as a rigid-body motion, or as an element of SE(3).
    pub type Isometry3<T> = Isometry<T, UnitQuaternion<T>, 3>;

    /// A 2-dimensional direct isometry using a rotation matrix for its rotational part.
    ///
    /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.**
    ///
    /// Also known as a rigid-body motion, or as an element of SE(2).
    pub type IsometryMatrix2<T> = Isometry<T, Rotation2<T>, 2>;

    /// A 3-dimensional direct isometry using a rotation matrix for its rotational part.
    ///
    /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.**
    ///
    /// Also known as a rigid-body motion, or as an element of SE(3).
    pub type IsometryMatrix3<T> = Isometry<T, Rotation3<T>, 3>;

    // This tests that the types correctly implement `Copy`, without having to run tests
    // (when targeting no-std for example).
    #[allow(dead_code)]
    fn ensure_copy() {
        fn is_copy<T: Copy>() {}

        is_copy::<IsometryMatrix2<f32>>();
        is_copy::<IsometryMatrix3<f32>>();
        is_copy::<Isometry2<f32>>();
        is_copy::<Isometry3<f32>>();
    }