Struct Vec2

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

Fields§

§x: f32§y: f32

Implementations§

Source§

impl Vec2

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

Source

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

Source

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

Source

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

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub fn select(mask: BVec2, 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 Vec2

Source

pub const X: Self

Source

pub const Y: Self

Source

pub const NEG_X: Self

Source

pub const NEG_Y: Self

Source

pub const AXES: [Self; 2]

Source

pub const fn extend(self, z: f32) -> Vec3

Source

pub const fn perp(self) -> Self

Source

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

Source

pub fn from_angle(angle: f32) -> Self

Source

pub fn to_angle(self) -> f32

Source

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

Signed shortest angle from this direction to rhs in [-pi, pi].

Source

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

Complex multiplication, useful for applying a unit 2D rotation.

Source

pub const fn yx(self) -> Self

Source

pub const fn xx(self) -> Self

Source

pub const fn yy(self) -> Self

Trait Implementations§

Source§

impl Add<Vec2> for f32

Source§

type Output = Vec2

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl Add<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl Add for Vec2

Source§

type Output = Vec2

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl AddAssign<f32> for Vec2

Source§

fn add_assign(&mut self, rhs: f32)

Performs the += operation. Read more
Source§

impl AddAssign for Vec2

Source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
Source§

impl Clone for Vec2

Source§

fn clone(&self) -> Vec2

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 Vec2

Source§

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

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

impl Default for Vec2

Source§

fn default() -> Vec2

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

impl Div<Vec2> for f32

Source§

type Output = Vec2

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl Div<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl Div for Vec2

Source§

type Output = Vec2

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl DivAssign<f32> for Vec2

Source§

fn div_assign(&mut self, rhs: f32)

Performs the /= operation. Read more
Source§

impl DivAssign for Vec2

Source§

fn div_assign(&mut self, rhs: Self)

Performs the /= operation. Read more
Source§

impl From<[f32; 2]> for Vec2

Source§

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

Converts to this type from the input type.
Source§

impl From<(f32, f32)> for Vec2

Source§

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

Converts to this type from the input type.
Source§

impl From<Vec2> for [f32; 2]

Source§

fn from(v: Vec2) -> Self

Converts to this type from the input type.
Source§

impl From<Vec2> for (f32, f32)

Source§

fn from(v: Vec2) -> Self

Converts to this type from the input type.
Source§

impl Index<usize> for Vec2

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 Vec2

Source§

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

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

impl Mul<Vec2> for f32

Source§

type Output = Vec2

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul for Vec2

Source§

type Output = Vec2

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl MulAssign<f32> for Vec2

Source§

fn mul_assign(&mut self, rhs: f32)

Performs the *= operation. Read more
Source§

impl MulAssign for Vec2

Source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
Source§

impl Neg for Vec2

Source§

type Output = Vec2

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self

Performs the unary - operation. Read more
Source§

impl PartialEq for Vec2

Source§

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

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<Vec2> for f32

Source§

type Output = Vec2

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl Sub<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl Sub for Vec2

Source§

type Output = Vec2

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl SubAssign<f32> for Vec2

Source§

fn sub_assign(&mut self, rhs: f32)

Performs the -= operation. Read more
Source§

impl SubAssign for Vec2

Source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
Source§

impl Sum for Vec2

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 Vec2

Source§

impl StructuralPartialEq for Vec2

Source§

impl Vec2Swizzles for Vec2

Auto Trait Implementations§

§

impl Freeze for Vec2

§

impl RefUnwindSafe for Vec2

§

impl Send for Vec2

§

impl Sync for Vec2

§

impl Unpin for Vec2

§

impl UnwindSafe for Vec2

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.