Struct emath::Vec2 [−][src]
A vector has a direction and length.
A Vec2
is often used to represent a size.
emath represents positions using crate::Pos2
.
Normally the units are points (logical pixels).
Fields
x: f32
y: f32
Implementations
impl Vec2
[src]
impl Vec2
[src]pub const X: Vec2
[src]
pub const Y: Vec2
[src]
pub const RIGHT: Vec2
[src]
pub const LEFT: Vec2
[src]
pub const UP: Vec2
[src]
pub const DOWN: Vec2
[src]
pub const ZERO: Self
[src]
pub const INFINITY: Self
[src]
pub fn zero() -> Self
[src]
Use Vec2::ZERO instead
pub fn infinity() -> Self
[src]
Use Vec2::INFINITY instead
pub const fn new(x: f32, y: f32) -> Self
[src]
#[must_use]pub fn normalized(self) -> Self
[src]
#[must_use]pub fn normalized(self) -> Self
[src]Safe normalize: returns zero if input is zero.
pub fn rot90(self) -> Self
[src]
pub fn rot90(self) -> Self
[src]Rotates the vector by 90°, i.e positive X to positive Y (clockwise in egui coordinates).
pub fn length(self) -> f32
[src]
pub fn length_sq(self) -> f32
[src]
pub fn angle(self) -> f32
[src]
pub fn angle(self) -> f32
[src]Measures the angle of the vector.
use std::f32::consts::TAU; assert_eq!(Vec2::ZERO.angle(), 0.0); assert_eq!(Vec2::angled(0.0).angle(), 0.0); assert_eq!(Vec2::angled(1.0).angle(), 1.0); assert_eq!(Vec2::X.angle(), 0.0); assert_eq!(Vec2::Y.angle(), 0.25 * TAU); assert_eq!(Vec2::RIGHT.angle(), 0.0); assert_eq!(Vec2::DOWN.angle(), 0.25 * TAU); assert_eq!(Vec2::UP.angle(), -0.25 * TAU);
pub fn angled(angle: f32) -> Self
[src]
pub fn angled(angle: f32) -> Self
[src]Create a unit vector with the given angle (in radians).
- An angle of zero gives the unit X axis.
- An angle of 𝞃/4 = 90° gives the unit Y axis.
use std::f32::consts::TAU; assert_eq!(Vec2::angled(0.0), Vec2::X); assert!((Vec2::angled(0.25 * TAU) - Vec2::Y).length() < 1e-5);
#[must_use]pub fn floor(self) -> Self
[src]
#[must_use]pub fn round(self) -> Self
[src]
#[must_use]pub fn ceil(self) -> Self
[src]
#[must_use]pub fn min(self, other: Self) -> Self
[src]
#[must_use]pub fn max(self, other: Self) -> Self
[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
[src]
Trait Implementations
impl AddAssign<Vec2> for Pos2
[src]
impl AddAssign<Vec2> for Pos2
[src]fn add_assign(&mut self, rhs: Vec2)
[src]
fn add_assign(&mut self, rhs: Vec2)
[src]Performs the +=
operation. Read more
impl AddAssign<Vec2> for Vec2
[src]
impl AddAssign<Vec2> for Vec2
[src]fn add_assign(&mut self, rhs: Vec2)
[src]
fn add_assign(&mut self, rhs: Vec2)
[src]Performs the +=
operation. Read more
impl MulAssign<f32> for Vec2
[src]
impl MulAssign<f32> for Vec2
[src]fn mul_assign(&mut self, rhs: f32)
[src]
fn mul_assign(&mut self, rhs: f32)
[src]Performs the *=
operation. Read more
impl SubAssign<Vec2> for Pos2
[src]
impl SubAssign<Vec2> for Pos2
[src]fn sub_assign(&mut self, rhs: Vec2)
[src]
fn sub_assign(&mut self, rhs: Vec2)
[src]Performs the -=
operation. Read more
impl SubAssign<Vec2> for Vec2
[src]
impl SubAssign<Vec2> for Vec2
[src]fn sub_assign(&mut self, rhs: Vec2)
[src]
fn sub_assign(&mut self, rhs: Vec2)
[src]Performs the -=
operation. Read more
impl Copy for Vec2
[src]
impl Eq for Vec2
[src]
impl StructuralPartialEq for Vec2
[src]
Auto Trait Implementations
impl RefUnwindSafe for Vec2
impl Send for Vec2
impl Sync for Vec2
impl Unpin for Vec2
impl UnwindSafe for Vec2
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more