#[repr(C)]pub struct IVec2 {
pub x: i32,
pub y: i32,
}
Expand description
A 2-dimensional vector.
Fields§
§x: i32
§y: i32
Implementations§
source§impl IVec2
impl IVec2
sourcepub fn select(mask: BVec2, if_true: IVec2, if_false: IVec2) -> IVec2
pub fn select(mask: BVec2, if_true: IVec2, if_false: IVec2) -> IVec2
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: [i32; 2]) -> IVec2
pub const fn from_array(a: [i32; 2]) -> IVec2
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[i32]) -> IVec2
pub const fn from_slice(slice: &[i32]) -> IVec2
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 [i32])
pub fn write_to_slice(self, slice: &mut [i32])
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: i32) -> IVec3
pub const fn extend(self, z: i32) -> IVec3
Creates a 3D vector from self
and the given z
value.
sourcepub fn min(self, rhs: IVec2) -> IVec2
pub fn min(self, rhs: IVec2) -> IVec2
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: IVec2) -> IVec2
pub fn max(self, rhs: IVec2) -> IVec2
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: IVec2, max: IVec2) -> IVec2
pub fn clamp(self, min: IVec2, max: IVec2) -> IVec2
Component-wise clamping of values, similar to i32::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) -> i32
pub fn min_element(self) -> i32
Returns the horizontal minimum of self
.
In other words this computes min(x, y, ..)
.
sourcepub fn max_element(self) -> i32
pub fn max_element(self) -> i32
Returns the horizontal maximum of self
.
In other words this computes max(x, y, ..)
.
sourcepub fn cmpeq(self, rhs: IVec2) -> BVec2
pub fn cmpeq(self, rhs: IVec2) -> 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: IVec2) -> BVec2
pub fn cmpne(self, rhs: IVec2) -> 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: IVec2) -> BVec2
pub fn cmpge(self, rhs: IVec2) -> 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: IVec2) -> BVec2
pub fn cmpgt(self, rhs: IVec2) -> 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: IVec2) -> BVec2
pub fn cmple(self, rhs: IVec2) -> 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: IVec2) -> BVec2
pub fn cmplt(self, rhs: IVec2) -> 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) -> IVec2
pub fn abs(self) -> IVec2
Returns a vector containing the absolute value of each element of self
.
sourcepub fn signum(self) -> IVec2
pub fn signum(self) -> IVec2
Returns a vector with elements representing the sign of self
.
1.0
if the number is positive,+0.0
orINFINITY
-1.0
if the number is negative,-0.0
orNEG_INFINITY
NAN
if the number isNAN
sourcepub fn perp_dot(self, rhs: IVec2) -> i32
pub fn perp_dot(self, rhs: IVec2) -> i32
The perpendicular dot product of self
and rhs
.
Also known as the wedge product, 2D cross product, and determinant.
Trait Implementations§
source§impl AddAssign<i32> for IVec2
impl AddAssign<i32> for IVec2
source§fn add_assign(&mut self, rhs: i32)
fn add_assign(&mut self, rhs: i32)
+=
operation. Read moresource§impl AddAssign for IVec2
impl AddAssign for IVec2
source§fn add_assign(&mut self, rhs: IVec2)
fn add_assign(&mut self, rhs: IVec2)
+=
operation. Read moresource§impl DivAssign<i32> for IVec2
impl DivAssign<i32> for IVec2
source§fn div_assign(&mut self, rhs: i32)
fn div_assign(&mut self, rhs: i32)
/=
operation. Read moresource§impl DivAssign for IVec2
impl DivAssign for IVec2
source§fn div_assign(&mut self, rhs: IVec2)
fn div_assign(&mut self, rhs: IVec2)
/=
operation. Read moresource§impl MulAssign<i32> for IVec2
impl MulAssign<i32> for IVec2
source§fn mul_assign(&mut self, rhs: i32)
fn mul_assign(&mut self, rhs: i32)
*=
operation. Read moresource§impl MulAssign for IVec2
impl MulAssign for IVec2
source§fn mul_assign(&mut self, rhs: IVec2)
fn mul_assign(&mut self, rhs: IVec2)
*=
operation. Read moresource§impl PartialEq for IVec2
impl PartialEq for IVec2
source§impl RemAssign<i32> for IVec2
impl RemAssign<i32> for IVec2
source§fn rem_assign(&mut self, rhs: i32)
fn rem_assign(&mut self, rhs: i32)
%=
operation. Read moresource§impl RemAssign for IVec2
impl RemAssign for IVec2
source§fn rem_assign(&mut self, rhs: IVec2)
fn rem_assign(&mut self, rhs: IVec2)
%=
operation. Read moresource§impl SubAssign<i32> for IVec2
impl SubAssign<i32> for IVec2
source§fn sub_assign(&mut self, rhs: i32)
fn sub_assign(&mut self, rhs: i32)
-=
operation. Read moresource§impl SubAssign for IVec2
impl SubAssign for IVec2
source§fn sub_assign(&mut self, rhs: IVec2)
fn sub_assign(&mut self, rhs: IVec2)
-=
operation. Read more