#[repr(C)]pub struct Vec4 {
pub x: f32,
pub y: f32,
pub z: f32,
pub w: f32,
}Fields§
§x: f32§y: f32§z: f32§w: f32Implementations§
Source§impl Vec4
impl Vec4
pub const ZERO: Self
pub const ONE: Self
pub const NEG_ONE: Self
pub const NAN: Self
pub const INFINITY: Self
pub const NEG_INFINITY: Self
pub const fn new(x: f32, y: f32, z: f32, w: f32) -> Self
pub const fn splat(value: f32) -> Self
pub const fn from_array(values: [f32; 4]) -> Self
pub const fn to_array(self) -> [f32; 4]
pub fn from_slice(values: &[f32]) -> Self
pub fn write_to_slice(self, values: &mut [f32])
pub fn is_finite(self) -> bool
pub fn is_nan(self) -> bool
pub fn dot(self, rhs: Self) -> f32
pub fn length_squared(self) -> f32
pub fn length_recip(self) -> f32
pub fn distance(self, other: Self) -> f32
pub fn distance_squared(self, other: Self) -> f32
Sourcepub fn try_normalize(self) -> Option<Self>
pub fn try_normalize(self) -> Option<Self>
Normalizes every finite nonzero vector, including subnormal inputs.
pub fn normalize(self) -> Self
pub fn normalize_or_zero(self) -> Self
pub fn normalize_or(self, fallback: Self) -> Self
pub fn is_normalized(self) -> bool
pub fn min(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
pub fn min_element(self) -> f32
pub fn max_element(self) -> f32
pub fn element_sum(self) -> f32
pub fn element_product(self) -> f32
pub fn abs(self) -> Self
pub fn signum(self) -> Self
pub fn floor(self) -> Self
pub fn ceil(self) -> Self
pub fn round(self) -> Self
pub fn trunc(self) -> Self
pub fn fract(self) -> Self
pub fn recip(self) -> Self
pub fn sqrt(self) -> Self
pub fn powf(self, exponent: f32) -> Self
pub fn exp(self) -> Self
pub fn clamp(self, min: Self, max: Self) -> Self
pub fn clamp_length(self, min: f32, max: f32) -> Self
pub fn clamp_length_max(self, max: f32) -> Self
pub fn clamp_length_min(self, min: f32) -> Self
pub fn lerp(self, rhs: Self, t: f32) -> Self
pub fn mul_add(self, multiplier: Self, add: Self) -> Self
pub fn abs_diff_eq(self, rhs: Self, tolerance: f32) -> bool
pub fn cmpeq(self, rhs: Self) -> BVec4
pub fn cmpne(self, rhs: Self) -> BVec4
pub fn cmplt(self, rhs: Self) -> BVec4
pub fn cmple(self, rhs: Self) -> BVec4
pub fn cmpgt(self, rhs: Self) -> BVec4
pub fn cmpge(self, rhs: Self) -> BVec4
pub fn select(mask: BVec4, if_true: Self, if_false: Self) -> Self
pub fn project_onto(self, other: Self) -> Self
pub fn reject_from(self, other: Self) -> Self
pub fn project_onto_normalized(self, normal: Self) -> Self
pub fn reject_from_normalized(self, normal: Self) -> Self
Sourcepub fn reflect(self, normal: Self) -> Self
pub fn reflect(self, normal: Self) -> Self
Reflects an incident vector about a unit surface normal.
pub fn move_towards(self, rhs: Self, max_distance: f32) -> Self
Source§impl Vec4
impl Vec4
pub const X: Self
pub const Y: Self
pub const Z: Self
pub const W: Self
pub const AXES: [Self; 4]
pub const fn truncate(self) -> Vec3
pub const fn xyz(self) -> Vec3
pub const fn xy(self) -> Vec2
pub const fn xz(self) -> Vec2
pub const fn zw(self) -> Vec2
pub const fn xyzw(self) -> Self
pub const fn wzyx(self) -> Self
Trait Implementations§
Source§impl AddAssign<f32> for Vec4
impl AddAssign<f32> for Vec4
Source§fn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
Performs the
+= operation. Read moreSource§impl AddAssign for Vec4
impl AddAssign for Vec4
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl DivAssign<f32> for Vec4
impl DivAssign<f32> for Vec4
Source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
Performs the
/= operation. Read moreSource§impl DivAssign for Vec4
impl DivAssign for Vec4
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the
/= operation. Read moreSource§impl MulAssign<f32> for Vec4
impl MulAssign<f32> for Vec4
Source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
Performs the
*= operation. Read moreSource§impl MulAssign for Vec4
impl MulAssign for Vec4
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*= operation. Read moreSource§impl SubAssign<f32> for Vec4
impl SubAssign<f32> for Vec4
Source§fn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
Performs the
-= operation. Read moreSource§impl SubAssign for Vec4
impl SubAssign for Vec4
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreimpl Copy for Vec4
impl StructuralPartialEq for Vec4
impl Vec4Swizzles for Vec4
Auto Trait Implementations§
impl Freeze for Vec4
impl RefUnwindSafe for Vec4
impl Send for Vec4
impl Sync for Vec4
impl Unpin for Vec4
impl UnwindSafe for Vec4
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