Struct Vec3

Source
#[repr(C)]
pub struct Vec3 { pub x: f32, pub y: f32, pub z: f32, }

Fields§

§x: f32§y: f32§z: f32

Implementations§

Source§

impl Vec3

Source

pub const ZERO: Self

Source

pub const ONE: Self

Source

pub const NEG_ONE: Self

Source

pub const NAN: Self

Source

pub const INFINITY: Self

Source

pub const NEG_INFINITY: Self

Source

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

Source

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

Source

pub const fn from_array(values: [f32; 3]) -> Self

Source

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

Source

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

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: Self) -> 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: Self) -> f32

Source

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

Source

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

Normalizes every finite nonzero vector, including subnormal inputs.

Source

pub fn normalize(self) -> Self

Source

pub fn normalize_or_zero(self) -> Self

Source

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

Source

pub fn is_normalized(self) -> bool

Source

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

Source

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

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) -> Self

Source

pub fn signum(self) -> Self

Source

pub fn floor(self) -> Self

Source

pub fn ceil(self) -> Self

Source

pub fn round(self) -> Self

Source

pub fn trunc(self) -> Self

Source

pub fn fract(self) -> Self

Source

pub fn recip(self) -> Self

Source

pub fn sqrt(self) -> Self

Source

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

Source

pub fn exp(self) -> Self

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub fn cmpeq(self, rhs: Self) -> BVec3

Source

pub fn cmpne(self, rhs: Self) -> BVec3

Source

pub fn cmplt(self, rhs: Self) -> BVec3

Source

pub fn cmple(self, rhs: Self) -> BVec3

Source

pub fn cmpgt(self, rhs: Self) -> BVec3

Source

pub fn cmpge(self, rhs: Self) -> BVec3

Source

pub fn select(mask: BVec3, if_true: Self, if_false: Self) -> Self

Source

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

Source

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

Source

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

Source

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

Source

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

Reflects an incident vector about a unit surface normal.

Source

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

Source§

impl Vec3

Source

pub const X: Self

Source

pub const Y: Self

Source

pub const Z: Self

Source

pub const NEG_X: Self

Source

pub const NEG_Y: Self

Source

pub const NEG_Z: Self

Source

pub const AXES: [Self; 3]

Source

pub const fn extend(self, w: f32) -> Vec4

Source

pub const fn truncate(self) -> Vec2

Source

pub fn cross(self, rhs: Self) -> Self

Source

pub fn angle_between(self, rhs: Self) -> f32

Source

pub fn any_orthogonal_vector(self) -> Self

Source

pub fn any_orthonormal_vector(self) -> Self

Source

pub const fn xy(self) -> Vec2

Source

pub const fn xz(self) -> Vec2

Source

pub const fn yz(self) -> Vec2

Source

pub const fn yx(self) -> Vec2

Source

pub const fn zx(self) -> Vec2

Source

pub const fn zy(self) -> Vec2

Source

pub const fn xyz(self) -> Self

Source

pub const fn xzy(self) -> Self

Source

pub const fn yxz(self) -> Self

Source

pub const fn yzx(self) -> Self

Source

pub const fn zxy(self) -> Self

Source

pub const fn zyx(self) -> Self

Trait Implementations§

Source§

impl Add<Vec3> for f32

Source§

type Output = Vec3

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl Add<f32> for Vec3

Source§

type Output = Vec3

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl Add for Vec3

Source§

type Output = Vec3

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl AddAssign<f32> for Vec3

Source§

fn add_assign(&mut self, rhs: f32)

Performs the += operation. Read more
Source§

impl AddAssign for Vec3

Source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
Source§

impl Clone for Vec3

Source§

fn clone(&self) -> Vec3

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 Vec3

Source§

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

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

impl Default for Vec3

Source§

fn default() -> Vec3

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

impl Div<Vec3> for f32

Source§

type Output = Vec3

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl Div<f32> for Vec3

Source§

type Output = Vec3

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl Div for Vec3

Source§

type Output = Vec3

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl DivAssign<f32> for Vec3

Source§

fn div_assign(&mut self, rhs: f32)

Performs the /= operation. Read more
Source§

impl DivAssign for Vec3

Source§

fn div_assign(&mut self, rhs: Self)

Performs the /= operation. Read more
Source§

impl From<[f32; 3]> for Vec3

Source§

fn from(v: [f32; 3]) -> Self

Converts to this type from the input type.
Source§

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

Source§

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

Converts to this type from the input type.
Source§

impl From<Vec3> for [f32; 3]

Source§

fn from(v: Vec3) -> Self

Converts to this type from the input type.
Source§

impl Index<usize> for Vec3

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 Vec3

Source§

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

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

impl Mul<Vec3> for Quat

Source§

type Output = Vec3

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul<Vec3> for f32

Source§

type Output = Vec3

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul<f32> for Vec3

Source§

type Output = Vec3

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul for Vec3

Source§

type Output = Vec3

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl MulAssign<f32> for Vec3

Source§

fn mul_assign(&mut self, rhs: f32)

Performs the *= operation. Read more
Source§

impl MulAssign for Vec3

Source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
Source§

impl Neg for Vec3

Source§

type Output = Vec3

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self

Performs the unary - operation. Read more
Source§

impl PartialEq for Vec3

Source§

fn eq(&self, other: &Vec3) -> 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 Vec3

Source§

fn product<I: Iterator<Item = Self>>(iter: I) -> Self

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

impl Sub<Vec3> for f32

Source§

type Output = Vec3

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl Sub<f32> for Vec3

Source§

type Output = Vec3

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl Sub for Vec3

Source§

type Output = Vec3

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl SubAssign<f32> for Vec3

Source§

fn sub_assign(&mut self, rhs: f32)

Performs the -= operation. Read more
Source§

impl SubAssign for Vec3

Source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
Source§

impl Sum for Vec3

Source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

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

impl Copy for Vec3

Source§

impl StructuralPartialEq for Vec3

Source§

impl Vec3Swizzles for Vec3

Auto Trait Implementations§

§

impl Freeze for Vec3

§

impl RefUnwindSafe for Vec3

§

impl Send for Vec3

§

impl Sync for Vec3

§

impl Unpin for Vec3

§

impl UnwindSafe for Vec3

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.