Struct Vec4

Source
#[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: f32

Implementations§

Source§

impl Vec4

Source

pub const ZERO: Vec4

Source

pub const ONE: Vec4

Source

pub const NEG_ONE: Vec4

Source

pub const NAN: Vec4

Source

pub const INFINITY: Vec4

Source

pub const NEG_INFINITY: Vec4

Source

pub const fn new(x: f32, y: f32, z: f32, w: f32) -> Vec4

Source

pub const fn splat(value: f32) -> Vec4

Source

pub const fn from_array(values: [f32; 4]) -> Vec4

Source

pub const fn to_array(self) -> [f32; 4]

Source

pub fn from_slice(values: &[f32]) -> Vec4

Source

pub fn write_to_slice(self, values: &mut [f32])

Source

pub fn is_finite(self) -> bool

Source

pub fn is_nan(self) -> bool

Source

pub fn dot(self, rhs: Vec4) -> f32

Source

pub fn length_squared(self) -> f32

Source

pub fn length(self) -> f32

Uses wider intermediates so finite small vectors do not underflow.

Source

pub fn length_recip(self) -> f32

Source

pub fn distance(self, other: Vec4) -> f32

Source

pub fn distance_squared(self, other: Vec4) -> f32

Source

pub fn try_normalize(self) -> Option<Vec4>

Normalizes every finite nonzero vector, including subnormal inputs.

Source

pub fn normalize(self) -> Vec4

Source

pub fn normalize_or_zero(self) -> Vec4

Source

pub fn normalize_or(self, fallback: Vec4) -> Vec4

Source

pub fn is_normalized(self) -> bool

Source

pub fn min(self, rhs: Vec4) -> Vec4

Source

pub fn max(self, rhs: Vec4) -> Vec4

Source

pub fn min_element(self) -> f32

Source

pub fn max_element(self) -> f32

Source

pub fn element_sum(self) -> f32

Source

pub fn element_product(self) -> f32

Source

pub fn abs(self) -> Vec4

Source

pub fn signum(self) -> Vec4

Source

pub fn floor(self) -> Vec4

Source

pub fn ceil(self) -> Vec4

Source

pub fn round(self) -> Vec4

Source

pub fn trunc(self) -> Vec4

Source

pub fn fract(self) -> Vec4

Source

pub fn recip(self) -> Vec4

Source

pub fn sqrt(self) -> Vec4

Source

pub fn powf(self, exponent: f32) -> Vec4

Source

pub fn exp(self) -> Vec4

Source

pub fn clamp(self, min: Vec4, max: Vec4) -> Vec4

Source

pub fn clamp_length(self, min: f32, max: f32) -> Vec4

Source

pub fn clamp_length_max(self, max: f32) -> Vec4

Source

pub fn clamp_length_min(self, min: f32) -> Vec4

Source

pub fn lerp(self, rhs: Vec4, t: f32) -> Vec4

Source

pub fn mul_add(self, multiplier: Vec4, add: Vec4) -> Vec4

Source

pub fn abs_diff_eq(self, rhs: Vec4, tolerance: f32) -> bool

Source

pub fn cmpeq(self, rhs: Vec4) -> BVec4

Source

pub fn cmpne(self, rhs: Vec4) -> BVec4

Source

pub fn cmplt(self, rhs: Vec4) -> BVec4

Source

pub fn cmple(self, rhs: Vec4) -> BVec4

Source

pub fn cmpgt(self, rhs: Vec4) -> BVec4

Source

pub fn cmpge(self, rhs: Vec4) -> BVec4

Source

pub fn select(mask: BVec4, if_true: Vec4, if_false: Vec4) -> Vec4

Source

pub fn project_onto(self, other: Vec4) -> Vec4

Source

pub fn reject_from(self, other: Vec4) -> Vec4

Source

pub fn project_onto_normalized(self, normal: Vec4) -> Vec4

Source

pub fn reject_from_normalized(self, normal: Vec4) -> Vec4

Source

pub fn reflect(self, normal: Vec4) -> Vec4

Reflects an incident vector about a unit surface normal.

Source

pub fn move_towards(self, rhs: Vec4, max_distance: f32) -> Vec4

Source§

impl Vec4

Source

pub const X: Vec4

Source

pub const Y: Vec4

Source

pub const Z: Vec4

Source

pub const W: Vec4

Source

pub const AXES: [Vec4; 4]

Source

pub const fn truncate(self) -> Vec3

Source

pub const fn xyz(self) -> Vec3

Source

pub const fn xy(self) -> Vec2

Source

pub const fn xz(self) -> Vec2

Source

pub const fn zw(self) -> Vec2

Source

pub const fn xyzw(self) -> Vec4

Source

pub const fn wzyx(self) -> Vec4

Trait Implementations§

Source§

impl Add<f32> for Vec4

Source§

type Output = Vec4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: f32) -> Vec4

Performs the + operation. Read more
Source§

impl Add for Vec4

Source§

type Output = Vec4

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Vec4) -> Vec4

Performs the + operation. Read more
Source§

impl AddAssign<f32> for Vec4

Source§

fn add_assign(&mut self, rhs: f32)

Performs the += operation. Read more
Source§

impl AddAssign for Vec4

Source§

fn add_assign(&mut self, rhs: Vec4)

Performs the += operation. Read more
Source§

impl Clone for Vec4

Source§

fn clone(&self) -> Vec4

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Vec4

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Vec4

Source§

fn default() -> Vec4

Returns the “default value” for a type. Read more
Source§

impl Div<f32> for Vec4

Source§

type Output = Vec4

The resulting type after applying the / operator.
Source§

fn div(self, rhs: f32) -> Vec4

Performs the / operation. Read more
Source§

impl Div for Vec4

Source§

type Output = Vec4

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Vec4) -> Vec4

Performs the / operation. Read more
Source§

impl DivAssign<f32> for Vec4

Source§

fn div_assign(&mut self, rhs: f32)

Performs the /= operation. Read more
Source§

impl DivAssign for Vec4

Source§

fn div_assign(&mut self, rhs: Vec4)

Performs the /= operation. Read more
Source§

impl From<[f32; 4]> for Vec4

Source§

fn from(v: [f32; 4]) -> Vec4

Converts to this type from the input type.
Source§

impl From<(f32, f32, f32, f32)> for Vec4

Source§

fn from(v: (f32, f32, f32, f32)) -> Vec4

Converts to this type from the input type.
Source§

impl From<Color> for Vec4

Source§

fn from(v: Color) -> Vec4

Converts to this type from the input type.
Source§

impl From<Quat> for Vec4

Source§

fn from(v: Quat) -> Vec4

Converts to this type from the input type.
Source§

impl From<Vec4> for Color

Source§

fn from(v: Vec4) -> Color

Converts to this type from the input type.
Source§

impl Index<usize> for Vec4

Source§

type Output = f32

The returned type after indexing.
Source§

fn index(&self, index: usize) -> &f32

Performs the indexing (container[index]) operation. Read more
Source§

impl IndexMut<usize> for Vec4

Source§

fn index_mut(&mut self, index: usize) -> &mut f32

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl Mul<Vec4> for Mat4

Source§

type Output = Vec4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Vec4) -> Vec4

Performs the * operation. Read more
Source§

impl Mul<f32> for Vec4

Source§

type Output = Vec4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: f32) -> Vec4

Performs the * operation. Read more
Source§

impl Mul for Vec4

Source§

type Output = Vec4

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Vec4) -> Vec4

Performs the * operation. Read more
Source§

impl MulAssign<f32> for Vec4

Source§

fn mul_assign(&mut self, rhs: f32)

Performs the *= operation. Read more
Source§

impl MulAssign for Vec4

Source§

fn mul_assign(&mut self, rhs: Vec4)

Performs the *= operation. Read more
Source§

impl Neg for Vec4

Source§

type Output = Vec4

The resulting type after applying the - operator.
Source§

fn neg(self) -> Vec4

Performs the unary - operation. Read more
Source§

impl PartialEq for Vec4

Source§

fn eq(&self, other: &Vec4) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Product for Vec4

Source§

fn product<I>(iter: I) -> Vec4
where I: Iterator<Item = Vec4>,

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Sub<f32> for Vec4

Source§

type Output = Vec4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: f32) -> Vec4

Performs the - operation. Read more
Source§

impl Sub for Vec4

Source§

type Output = Vec4

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Vec4) -> Vec4

Performs the - operation. Read more
Source§

impl SubAssign<f32> for Vec4

Source§

fn sub_assign(&mut self, rhs: f32)

Performs the -= operation. Read more
Source§

impl SubAssign for Vec4

Source§

fn sub_assign(&mut self, rhs: Vec4)

Performs the -= operation. Read more
Source§

impl Sum for Vec4

Source§

fn sum<I>(iter: I) -> Vec4
where I: Iterator<Item = Vec4>,

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl Copy for Vec4

Source§

impl StructuralPartialEq for Vec4

Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.