#[repr(C)]pub struct I64Vec2 {
pub x: i64,
pub y: i64,
}Expand description
A 2-dimensional vector.
Fields§
§x: i64§y: i64Implementations§
Source§impl I64Vec2
impl I64Vec2
Sourcepub fn select(mask: BVec2, if_true: Self, if_false: Self) -> Self
pub fn select(mask: BVec2, if_true: Self, if_false: Self) -> Self
Creates a vector from the elements in if_true and if_false, selecting which to use
for each element of self.
A true element in the mask uses the corresponding element from if_true, and false
uses the element from if_false.
Sourcepub const fn from_array(a: [i64; 2]) -> Self
pub const fn from_array(a: [i64; 2]) -> Self
Creates a new vector from an array.
Sourcepub const fn from_slice(slice: &[i64]) -> Self
pub const fn from_slice(slice: &[i64]) -> Self
Creates a vector from the first 2 values in slice.
§Panics
Panics if slice is less than 2 elements long.
Sourcepub fn write_to_slice(self, slice: &mut [i64])
pub fn write_to_slice(self, slice: &mut [i64])
Writes the elements of self to the first 2 elements in slice.
§Panics
Panics if slice is less than 2 elements long.
Sourcepub const fn extend(self, z: i64) -> I64Vec3
pub const fn extend(self, z: i64) -> I64Vec3
Creates a 3D vector from self and the given z value.
Sourcepub fn dot_into_vec(self, rhs: Self) -> Self
pub fn dot_into_vec(self, rhs: Self) -> Self
Returns a vector where every component is the dot product of self and rhs.
Sourcepub fn min(self, rhs: Self) -> Self
pub fn min(self, rhs: Self) -> Self
Returns a vector containing the minimum values for each element of self and rhs.
In other words this computes [self.x.min(rhs.x), self.y.min(rhs.y), ..].
Sourcepub fn max(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
Returns a vector containing the maximum values for each element of self and rhs.
In other words this computes [self.x.max(rhs.x), self.y.max(rhs.y), ..].
Sourcepub fn clamp(self, min: Self, max: Self) -> Self
pub fn clamp(self, min: Self, max: Self) -> Self
Component-wise clamping of values, similar to i64::clamp.
Each element in min must be less-or-equal to the corresponding element in max.
§Panics
Will panic if min is greater than max when glam_assert is enabled.
Sourcepub fn min_element(self) -> i64
pub fn min_element(self) -> i64
Returns the horizontal minimum of self.
In other words this computes min(x, y, ..).
Sourcepub fn max_element(self) -> i64
pub fn max_element(self) -> i64
Returns the horizontal maximum of self.
In other words this computes max(x, y, ..).
Sourcepub fn cmpeq(self, rhs: Self) -> BVec2
pub fn cmpeq(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a == comparison for each element of
self and rhs.
In other words, this computes [self.x == rhs.x, self.y == rhs.y, ..] for all
elements.
Sourcepub fn cmpne(self, rhs: Self) -> BVec2
pub fn cmpne(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a != comparison for each element of
self and rhs.
In other words this computes [self.x != rhs.x, self.y != rhs.y, ..] for all
elements.
Sourcepub fn cmpge(self, rhs: Self) -> BVec2
pub fn cmpge(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a >= comparison for each element of
self and rhs.
In other words this computes [self.x >= rhs.x, self.y >= rhs.y, ..] for all
elements.
Sourcepub fn cmpgt(self, rhs: Self) -> BVec2
pub fn cmpgt(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a > comparison for each element of
self and rhs.
In other words this computes [self.x > rhs.x, self.y > rhs.y, ..] for all
elements.
Sourcepub fn cmple(self, rhs: Self) -> BVec2
pub fn cmple(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a <= comparison for each element of
self and rhs.
In other words this computes [self.x <= rhs.x, self.y <= rhs.y, ..] for all
elements.
Sourcepub fn cmplt(self, rhs: Self) -> BVec2
pub fn cmplt(self, rhs: Self) -> BVec2
Returns a vector mask containing the result of a < comparison for each element of
self and rhs.
In other words this computes [self.x < rhs.x, self.y < rhs.y, ..] for all
elements.
Sourcepub fn abs(self) -> Self
pub fn abs(self) -> Self
Returns a vector containing the absolute value of each element of self.
Sourcepub fn signum(self) -> Self
pub fn signum(self) -> Self
Returns a vector with elements representing the sign of self.
0if the number is zero1if the number is positive-1if the number is negative
Sourcepub fn is_negative_bitmask(self) -> u32
pub fn is_negative_bitmask(self) -> u32
Returns a bitmask with the lowest 2 bits set to the sign bits from the elements of self.
A negative element results in a 1 bit and a positive element in a 0 bit. Element x goes
into the first lowest bit, element y into the second, etc.
Sourcepub fn length_squared(self) -> i64
pub fn length_squared(self) -> i64
Computes the squared length of self.
Sourcepub fn distance_squared(self, rhs: Self) -> i64
pub fn distance_squared(self, rhs: Self) -> i64
Compute the squared euclidean distance between two points in space.
Sourcepub fn div_euclid(self, rhs: Self) -> Self
pub fn div_euclid(self, rhs: Self) -> Self
Returns the element-wise quotient of [Euclidean division] of self by rhs.
§Panics
This function will panic if any rhs element is 0 or the division results in overflow.
Sourcepub fn rem_euclid(self, rhs: Self) -> Self
pub fn rem_euclid(self, rhs: Self) -> Self
Returns the element-wise remainder of Euclidean division of self by rhs.
§Panics
This function will panic if any rhs element is 0 or the division results in overflow.
Sourcepub fn perp_dot(self, rhs: Self) -> i64
pub fn perp_dot(self, rhs: Self) -> i64
The perpendicular dot product of self and rhs.
Also known as the wedge product, 2D cross product, and determinant.
Sourcepub fn rotate(self, rhs: Self) -> Self
pub fn rotate(self, rhs: Self) -> Self
Returns rhs rotated by the angle of self. If self is normalized,
then this just rotation. This is what you usually want. Otherwise,
it will be like a rotation with a multiplication by self’s length.
Sourcepub fn as_i16vec2(&self) -> I16Vec2
pub fn as_i16vec2(&self) -> I16Vec2
Casts all elements of self to i16.
Sourcepub fn as_u16vec2(&self) -> U16Vec2
pub fn as_u16vec2(&self) -> U16Vec2
Casts all elements of self to u16.
Sourcepub fn as_u64vec2(&self) -> U64Vec2
pub fn as_u64vec2(&self) -> U64Vec2
Casts all elements of self to u64.
Sourcepub const fn wrapping_add(self, rhs: Self) -> Self
pub const fn wrapping_add(self, rhs: Self) -> Self
Returns a vector containing the wrapping addition of self and rhs.
In other words this computes [self.x.wrapping_add(rhs.x), self.y.wrapping_add(rhs.y), ..].
Sourcepub const fn wrapping_sub(self, rhs: Self) -> Self
pub const fn wrapping_sub(self, rhs: Self) -> Self
Returns a vector containing the wrapping subtraction of self and rhs.
In other words this computes [self.x.wrapping_sub(rhs.x), self.y.wrapping_sub(rhs.y), ..].
Sourcepub const fn wrapping_mul(self, rhs: Self) -> Self
pub const fn wrapping_mul(self, rhs: Self) -> Self
Returns a vector containing the wrapping multiplication of self and rhs.
In other words this computes [self.x.wrapping_mul(rhs.x), self.y.wrapping_mul(rhs.y), ..].
Sourcepub const fn wrapping_div(self, rhs: Self) -> Self
pub const fn wrapping_div(self, rhs: Self) -> Self
Returns a vector containing the wrapping division of self and rhs.
In other words this computes [self.x.wrapping_div(rhs.x), self.y.wrapping_div(rhs.y), ..].
Sourcepub const fn saturating_add(self, rhs: Self) -> Self
pub const fn saturating_add(self, rhs: Self) -> Self
Returns a vector containing the saturating addition of self and rhs.
In other words this computes [self.x.saturating_add(rhs.x), self.y.saturating_add(rhs.y), ..].
Sourcepub const fn saturating_sub(self, rhs: Self) -> Self
pub const fn saturating_sub(self, rhs: Self) -> Self
Returns a vector containing the saturating subtraction of self and rhs.
In other words this computes [self.x.saturating_sub(rhs.x), self.y.saturating_sub(rhs.y), ..].
Sourcepub const fn saturating_mul(self, rhs: Self) -> Self
pub const fn saturating_mul(self, rhs: Self) -> Self
Returns a vector containing the saturating multiplication of self and rhs.
In other words this computes [self.x.saturating_mul(rhs.x), self.y.saturating_mul(rhs.y), ..].
Sourcepub const fn saturating_div(self, rhs: Self) -> Self
pub const fn saturating_div(self, rhs: Self) -> Self
Returns a vector containing the saturating division of self and rhs.
In other words this computes [self.x.saturating_div(rhs.x), self.y.saturating_div(rhs.y), ..].
Trait Implementations§
Source§impl AddAssign<i64> for I64Vec2
impl AddAssign<i64> for I64Vec2
Source§fn add_assign(&mut self, rhs: i64)
fn add_assign(&mut self, rhs: i64)
+= operation. Read moreSource§impl AddAssign for I64Vec2
impl AddAssign for I64Vec2
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+= operation. Read moreSource§impl DivAssign<i64> for I64Vec2
impl DivAssign<i64> for I64Vec2
Source§fn div_assign(&mut self, rhs: i64)
fn div_assign(&mut self, rhs: i64)
/= operation. Read moreSource§impl DivAssign for I64Vec2
impl DivAssign for I64Vec2
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/= operation. Read moreSource§impl MulAssign<i64> for I64Vec2
impl MulAssign<i64> for I64Vec2
Source§fn mul_assign(&mut self, rhs: i64)
fn mul_assign(&mut self, rhs: i64)
*= operation. Read moreSource§impl MulAssign for I64Vec2
impl MulAssign for I64Vec2
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*= operation. Read moreSource§impl RemAssign<i64> for I64Vec2
impl RemAssign<i64> for I64Vec2
Source§fn rem_assign(&mut self, rhs: i64)
fn rem_assign(&mut self, rhs: i64)
%= operation. Read moreSource§impl RemAssign for I64Vec2
impl RemAssign for I64Vec2
Source§fn rem_assign(&mut self, rhs: Self)
fn rem_assign(&mut self, rhs: Self)
%= operation. Read moreSource§impl SubAssign<i64> for I64Vec2
impl SubAssign<i64> for I64Vec2
Source§fn sub_assign(&mut self, rhs: i64)
fn sub_assign(&mut self, rhs: i64)
-= operation. Read moreSource§impl SubAssign for I64Vec2
impl SubAssign for I64Vec2
Source§fn sub_assign(&mut self, rhs: I64Vec2)
fn sub_assign(&mut self, rhs: I64Vec2)
-= operation. Read more