nalgebra/geometry/
quaternion_coordinates.rs1use std::ops::{Deref, DerefMut};
2
3use simba::simd::SimdValue;
4
5use crate::base::coordinates::IJKW;
6use crate::Scalar;
7
8use crate::geometry::Quaternion;
9
10impl<T: Scalar + SimdValue> Deref for Quaternion<T> {
11 type Target = IJKW<T>;
12
13 #[inline]
14 fn deref(&self) -> &Self::Target {
15 unsafe { &*(self as *const Self as *const Self::Target) }
16 }
17}
18
19impl<T: Scalar + SimdValue> DerefMut for Quaternion<T> {
20 #[inline]
21 fn deref_mut(&mut self) -> &mut Self::Target {
22 unsafe { &mut *(self as *mut Self as *mut Self::Target) }
23 }
24}