Expand description
A homogeneous vector in 3D space.
Fields
x: f32
y: f32
z: f32
w: f32
Implementations
sourceimpl Vector4
impl Vector4
sourcepub const fn new(x: f32, y: f32, z: f32, w: f32) -> Self
pub const fn new(x: f32, y: f32, z: f32, w: f32) -> Self
Construct new a vector from individual coordinates
sourcepub const fn from_scalar(s: f32) -> Self
pub const fn from_scalar(s: f32) -> Self
Construct new a vector where each coordinate is the same
sourcepub fn lerp(&self, rhs: Self, factor: f32) -> Self
pub fn lerp(&self, rhs: Self, factor: f32) -> Self
Linear interpolation between this vector and another
sourcepub fn min(&self, rhs: Self) -> Self
pub fn min(&self, rhs: Self) -> Self
Compute the element-wise minimum of this vector and another
sourcepub fn max(&self, rhs: Self) -> Self
pub fn max(&self, rhs: Self) -> Self
Compute the element-wise maximum of this vector and another
sourcepub fn magnitude_squared(&self) -> f32
pub fn magnitude_squared(&self) -> f32
The length of this vector squared. Note that this avoids an expensive square root.
sourcepub fn magnitude(&self) -> f32
pub fn magnitude(&self) -> f32
The length of this vector. Note that this involves an expensive square root.
sourcepub fn normalized(&self) -> Self
pub fn normalized(&self) -> Self
Normalize this vector to unit length. Note that this involves an expensive square root.
pub fn as_slice(&self) -> &[f32]
Trait Implementations
sourceimpl AddAssign<Vector4> for Vector4
impl AddAssign<Vector4> for Vector4
sourcefn add_assign(&mut self, rhs: Vector4)
fn add_assign(&mut self, rhs: Vector4)
Performs the +=
operation. Read more
sourceimpl AddAssign<f32> for Vector4
impl AddAssign<f32> for Vector4
sourcefn add_assign(&mut self, t: f32)
fn add_assign(&mut self, t: f32)
Performs the +=
operation. Read more
sourceimpl DivAssign<Vector4> for Vector4
impl DivAssign<Vector4> for Vector4
sourcefn div_assign(&mut self, rhs: Vector4)
fn div_assign(&mut self, rhs: Vector4)
Performs the /=
operation. Read more
sourceimpl DivAssign<f32> for Vector4
impl DivAssign<f32> for Vector4
sourcefn div_assign(&mut self, t: f32)
fn div_assign(&mut self, t: f32)
Performs the /=
operation. Read more
sourceimpl MulAssign<Vector4> for Vector4
impl MulAssign<Vector4> for Vector4
sourcefn mul_assign(&mut self, rhs: Vector4)
fn mul_assign(&mut self, rhs: Vector4)
Performs the *=
operation. Read more
sourceimpl MulAssign<f32> for Vector4
impl MulAssign<f32> for Vector4
sourcefn mul_assign(&mut self, t: f32)
fn mul_assign(&mut self, t: f32)
Performs the *=
operation. Read more
sourceimpl NearlyEqual for &Vector4
impl NearlyEqual for &Vector4
fn nearly_equals(self, rhs: Self) -> bool
sourceimpl SubAssign<Vector4> for Vector4
impl SubAssign<Vector4> for Vector4
sourcefn sub_assign(&mut self, rhs: Vector4)
fn sub_assign(&mut self, rhs: Vector4)
Performs the -=
operation. Read more
sourceimpl SubAssign<f32> for Vector4
impl SubAssign<f32> for Vector4
sourcefn sub_assign(&mut self, t: f32)
fn sub_assign(&mut self, t: f32)
Performs the -=
operation. Read more
impl Copy for Vector4
impl StructuralPartialEq for Vector4
Auto Trait Implementations
impl RefUnwindSafe for Vector4
impl Send for Vector4
impl Sync for Vector4
impl Unpin for Vector4
impl UnwindSafe for Vector4
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more