#[repr(C)]pub struct Vector4 {
pub x: f32,
pub y: f32,
pub z: f32,
pub w: f32,
}
Expand description
A homogeneous vector in 3D space.
Fields§
§x: f32
§y: f32
§z: f32
§w: f32
Implementations§
Source§impl 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§
Source§impl AddAssign<f32> for Vector4
impl AddAssign<f32> for Vector4
Source§fn add_assign(&mut self, t: f32)
fn add_assign(&mut self, t: f32)
Performs the
+=
operation. Read moreSource§impl AddAssign for Vector4
impl AddAssign for Vector4
Source§fn add_assign(&mut self, rhs: Vector4)
fn add_assign(&mut self, rhs: Vector4)
Performs the
+=
operation. Read moreSource§impl DivAssign<f32> for Vector4
impl DivAssign<f32> for Vector4
Source§fn div_assign(&mut self, t: f32)
fn div_assign(&mut self, t: f32)
Performs the
/=
operation. Read moreSource§impl DivAssign for Vector4
impl DivAssign for Vector4
Source§fn div_assign(&mut self, rhs: Vector4)
fn div_assign(&mut self, rhs: Vector4)
Performs the
/=
operation. Read moreSource§impl MulAssign<f32> for Vector4
impl MulAssign<f32> for Vector4
Source§fn mul_assign(&mut self, t: f32)
fn mul_assign(&mut self, t: f32)
Performs the
*=
operation. Read moreSource§impl MulAssign for Vector4
impl MulAssign for Vector4
Source§fn mul_assign(&mut self, rhs: Vector4)
fn mul_assign(&mut self, rhs: Vector4)
Performs the
*=
operation. Read moreSource§impl NearlyEqual for &Vector4
impl NearlyEqual for &Vector4
fn nearly_equals(self, rhs: Self) -> bool
Source§impl SubAssign<f32> for Vector4
impl SubAssign<f32> for Vector4
Source§fn sub_assign(&mut self, t: f32)
fn sub_assign(&mut self, t: f32)
Performs the
-=
operation. Read moreSource§impl SubAssign for Vector4
impl SubAssign for Vector4
Source§fn sub_assign(&mut self, rhs: Vector4)
fn sub_assign(&mut self, rhs: Vector4)
Performs the
-=
operation. Read moreimpl Copy for Vector4
impl StructuralPartialEq for Vector4
Auto Trait Implementations§
impl Freeze for Vector4
impl RefUnwindSafe for Vector4
impl Send for Vector4
impl Sync for Vector4
impl Unpin for Vector4
impl UnwindSafe for Vector4
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