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: Vec2

Source

pub const ONE: Vec2

Source

pub const NEG_ONE: Vec2

Source

pub const NAN: Vec2

Source

pub const INFINITY: Vec2

Source

pub const NEG_INFINITY: Vec2

Source

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

Source

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

Source

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

Source

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

Source

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

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

Source

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

Source

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

Normalizes every finite nonzero vector, including subnormal inputs.

Source

pub fn normalize(self) -> Vec2

Source

pub fn normalize_or_zero(self) -> Vec2

Source

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

Source

pub fn is_normalized(self) -> bool

Source

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

Source

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

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

Source

pub fn signum(self) -> Vec2

Source

pub fn floor(self) -> Vec2

Source

pub fn ceil(self) -> Vec2

Source

pub fn round(self) -> Vec2

Source

pub fn trunc(self) -> Vec2

Source

pub fn fract(self) -> Vec2

Source

pub fn recip(self) -> Vec2

Source

pub fn sqrt(self) -> Vec2

Source

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

Source

pub fn exp(self) -> Vec2

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub fn cmpeq(self, rhs: Vec2) -> BVec2

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub fn select(mask: BVec2, if_true: Vec2, if_false: Vec2) -> Vec2

Source

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

Source

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

Source

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

Source

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

Source

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

Reflects an incident vector about a unit surface normal.

Source

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

Source§

impl Vec2

Source

pub const X: Vec2

Source

pub const Y: Vec2

Source

pub const NEG_X: Vec2

Source

pub const NEG_Y: Vec2

Source

pub const AXES: [Vec2; 2]

Source

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

Source

pub const fn perp(self) -> Vec2

Source

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

Source

pub fn from_angle(angle: f32) -> Vec2

Source

pub fn to_angle(self) -> f32

Source

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

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

Source

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

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

Source

pub const fn yx(self) -> Vec2

Source

pub const fn xx(self) -> Vec2

Source

pub const fn yy(self) -> Vec2

Trait Implementations§

Source§

impl Add<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the + operator.
Source§

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

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: Vec2) -> Vec2

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: Vec2)

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<(), Error>

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

Source§

type Output = Vec2

The resulting type after applying the / operator.
Source§

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

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: Vec2) -> Vec2

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: Vec2)

Performs the /= operation. Read more
Source§

impl From<[f32; 2]> for Vec2

Source§

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

Converts to this type from the input type.
Source§

impl From<(f32, f32)> for Vec2

Source§

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

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 Rotation2

Source§

type Output = Vec2

The resulting type after applying the * operator.
Source§

fn mul(self, p: 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) -> Vec2

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: Vec2) -> Vec2

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: Vec2)

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

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>(iter: I) -> Vec2
where I: Iterator<Item = Vec2>,

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

impl Sub<f32> for Vec2

Source§

type Output = Vec2

The resulting type after applying the - operator.
Source§

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

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: Vec2) -> Vec2

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: Vec2)

Performs the -= operation. Read more
Source§

impl Sum for Vec2

Source§

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

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.