Enum valence_math::EulerRot
source · pub enum EulerRot {
Show 24 variants
ZYX,
ZXY,
YXZ,
YZX,
XYZ,
XZY,
ZYZ,
ZXZ,
YXY,
YZY,
XYX,
XZX,
ZYXEx,
ZXYEx,
YXZEx,
YZXEx,
XYZEx,
XZYEx,
ZYZEx,
ZXZEx,
YXYEx,
YZYEx,
XYXEx,
XZXEx,
}
Expand description
Euler rotation sequences.
The three elemental rotations may be extrinsic (rotations about the axes xyz of the original coordinate system, which is assumed to remain motionless), or intrinsic(rotations about the axes of the rotating coordinate system XYZ, solidary with the moving body, which changes its orientation after each elemental rotation).
let m_intrinsic = Mat3::from_rotation_x(i) * Mat3::from_rotation_y(j) * Mat3::from_rotation_z(k);
let n_intrinsic = Mat3::from_euler(EulerRot::XYZ, i, j, k);
assert!(m_intrinsic.abs_diff_eq(n_intrinsic, 2e-6));
let m_extrinsic = Mat3::from_rotation_z(k) * Mat3::from_rotation_y(j) * Mat3::from_rotation_x(i);
let n_extrinsic = Mat3::from_euler(EulerRot::XYZEx, i, j, k);
assert!(m_extrinsic.abs_diff_eq(n_extrinsic, 2e-6));
Variants§
ZYX
Intrinsic three-axis rotation ZYX
ZXY
Intrinsic three-axis rotation ZXY
YXZ
Intrinsic three-axis rotation YXZ
YZX
Intrinsic three-axis rotation YZX
XYZ
Intrinsic three-axis rotation XYZ
XZY
Intrinsic three-axis rotation XZY
ZYZ
Intrinsic two-axis rotation ZYZ
ZXZ
Intrinsic two-axis rotation ZXZ
YXY
Intrinsic two-axis rotation YXY
YZY
Intrinsic two-axis rotation YZY
XYX
Intrinsic two-axis rotation XYX
XZX
Intrinsic two-axis rotation XZX
ZYXEx
Extrinsic three-axis rotation ZYX
ZXYEx
Extrinsic three-axis rotation ZXY
YXZEx
Extrinsic three-axis rotation YXZ
YZXEx
Extrinsic three-axis rotation YZX
XYZEx
Extrinsic three-axis rotation XYZ
XZYEx
Extrinsic three-axis rotation XZY
ZYZEx
Extrinsic two-axis rotation ZYZ
ZXZEx
Extrinsic two-axis rotation ZXZ
YXYEx
Extrinsic two-axis rotation YXY
YZYEx
Extrinsic two-axis rotation YZY
XYXEx
Extrinsic two-axis rotation XYX
XZXEx
Extrinsic two-axis rotation XZX
Trait Implementations§
impl Copy for EulerRot
impl Eq for EulerRot
impl StructuralPartialEq for EulerRot
Auto Trait Implementations§
impl Freeze for EulerRot
impl RefUnwindSafe for EulerRot
impl Send for EulerRot
impl Sync for EulerRot
impl Unpin for EulerRot
impl UnwindSafe for EulerRot
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)