pub struct QVec3<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8>(/* private fields */);Expand description
Three components of one dimension, stored in SI base units.
Implementations§
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> QVec3<L, M, T, I, K, N, J>
Sourcepub fn new(
x: Qty<L, M, T, I, K, N, J>,
y: Qty<L, M, T, I, K, N, J>,
z: Qty<L, M, T, I, K, N, J>,
) -> Self
pub fn new( x: Qty<L, M, T, I, K, N, J>, y: Qty<L, M, T, I, K, N, J>, z: Qty<L, M, T, I, K, N, J>, ) -> Self
From three quantities of the same dimension.
Sourcepub fn normalize(self) -> DVec3
pub fn normalize(self) -> DVec3
Which way it points — a pure number, because a direction is a length over a length. Zero-length vectors give zero rather than a NaN.
Sourcepub fn along(self, direction: DVec3) -> Qty<L, M, T, I, K, N, J>
pub fn along(self, direction: DVec3) -> Qty<L, M, T, I, K, N, J>
The component along a unit direction. Projection does not change the
dimension, which is why this one is expressible and dot is not.
Sourcepub fn perpendicular_to(self, direction: DVec3) -> Self
pub fn perpendicular_to(self, direction: DVec3) -> Self
The part of this vector perpendicular to a unit direction.
Trait Implementations§
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Add for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Add for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> AddAssign for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> AddAssign for QVec3<L, M, T, I, K, N, J>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Clone for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Clone for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Copy for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Debug for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Debug for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Default for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Default for QVec3<L, M, T, I, K, N, J>
Source§impl<'de, const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Deserialize<'de> for QVec3<L, M, T, I, K, N, J>
impl<'de, const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Deserialize<'de> for QVec3<L, M, T, I, K, N, J>
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Div<f64> for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Div<f64> for QVec3<L, M, T, I, K, N, J>
Source§impl Mul<QVec3<1, 0, -1, 0, 0, 0, 0>> for Mass
impl Mul<QVec3<1, 0, -1, 0, 0, 0, 0>> for Mass
Source§fn mul(self, v: VelocityVec) -> MomentumVec
fn mul(self, v: VelocityVec) -> MomentumVec
Performs the
* operation. Read moreSource§impl Mul<QVec3<1, 0, -2, 0, 0, 0, 0>> for Time
impl Mul<QVec3<1, 0, -2, 0, 0, 0, 0>> for Time
Source§fn mul(self, v: AccelerationVec) -> VelocityVec
fn mul(self, v: AccelerationVec) -> VelocityVec
Performs the
* operation. Read moreSource§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Mul<QVec3<L, M, T, I, K, N, J>> for f64
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Mul<QVec3<L, M, T, I, K, N, J>> for f64
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Mul<f64> for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Mul<f64> for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Neg for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Neg for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> PartialEq for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> PartialEq for QVec3<L, M, T, I, K, N, J>
Source§impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Serialize for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Serialize for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> StructuralPartialEq for QVec3<L, M, T, I, K, N, J>
Auto Trait Implementations§
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Freeze for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> RefUnwindSafe for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Send for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Sync for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> Unpin for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> UnsafeUnpin for QVec3<L, M, T, I, K, N, J>
impl<const L: i8, const M: i8, const T: i8, const I: i8, const K: i8, const N: i8, const J: i8> UnwindSafe for QVec3<L, M, T, I, K, N, J>
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
Mutably borrows from an owned value. Read more