Struct egui::Vec2[]

pub struct Vec2 {
    pub x: f32,
    pub y: f32,
}

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: f32y: f32

Implementations

impl Vec2

pub const X: Vec2

pub const Y: Vec2

pub const RIGHT: Vec2

pub const LEFT: Vec2

pub const UP: Vec2

pub const DOWN: Vec2

pub const ZERO: Vec2

pub const INFINITY: Vec2

pub fn zero() -> Vec2

👎 Deprecated:

Use Vec2::ZERO instead

pub fn infinity() -> Vec2

👎 Deprecated:

Use Vec2::INFINITY instead

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

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

Set both x and y to the same value.

#[must_use]
pub fn normalized(self) -> Vec2

Safe normalize: returns zero if input is zero.

pub fn rot90(self) -> Vec2

Rotates the vector by 90°, i.e positive X to positive Y (clockwise in egui coordinates).

pub fn length(self) -> f32

pub fn length_sq(self) -> f32

pub fn angle(self) -> f32

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

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

#[must_use]
pub fn round(self) -> Vec2

#[must_use]
pub fn ceil(self) -> Vec2

pub fn is_finite(self) -> bool

True if all members are also finite.

pub fn any_nan(self) -> bool

True if any member is NaN.

#[must_use]
pub fn min(self, other: Vec2) -> Vec2

#[must_use]
pub fn max(self, other: Vec2) -> Vec2

#[must_use]
pub fn min_elem(self) -> f32

Returns the minimum of self.x and self.y.

#[must_use]
pub fn max_elem(self) -> f32

Returns the maximum of self.x and self.y.

#[must_use]
pub fn clamp(self, min: Vec2, max: Vec2) -> Vec2

Trait Implementations

impl Add<Vec2> for Pos2

type Output = Pos2

The resulting type after applying the + operator.

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

Performs the + operation. Read more

impl Add<Vec2> for Vec2

type Output = Vec2

The resulting type after applying the + operator.

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

Performs the + operation. Read more

impl AddAssign<Vec2> for Pos2

pub fn add_assign(&mut self, rhs: Vec2)

Performs the += operation. Read more

impl AddAssign<Vec2> for Vec2

pub fn add_assign(&mut self, rhs: Vec2)

Performs the += operation. Read more

impl Clone for Vec2

pub fn clone(&self) -> Vec2

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Vec2

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

Formats the value using the given formatter. Read more

impl Default for Vec2

pub fn default() -> Vec2

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

impl Div<Vec2> for Vec2

Element-wise division

type Output = Vec2

The resulting type after applying the / operator.

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

Performs the / operation. Read more

impl Div<f32> for Vec2

type Output = Vec2

The resulting type after applying the / operator.

pub fn div(self, factor: f32) -> Vec2

Performs the / operation. Read more

impl<'_> From<&'_ [f32; 2]> for Vec2

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

Performs the conversion.

impl<'_> From<&'_ (f32, f32)> for Vec2

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

Performs the conversion.

impl From<[f32; 2]> for Vec2

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

Performs the conversion.

impl From<(f32, f32)> for Vec2

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

Performs the conversion.

impl Index<usize> for Vec2

type Output = f32

The returned type after indexing.

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

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

impl IndexMut<usize> for Vec2

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

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

impl Mul<Vec2> for Vec2

Element-wise multiplication

type Output = Vec2

The resulting type after applying the * operator.

pub fn mul(self, vec: Vec2) -> Vec2

Performs the * operation. Read more

impl Mul<f32> for Vec2

type Output = Vec2

The resulting type after applying the * operator.

pub fn mul(self, factor: f32) -> Vec2

Performs the * operation. Read more

impl MulAssign<f32> for Vec2

pub fn mul_assign(&mut self, rhs: f32)

Performs the *= operation. Read more

impl Neg for Vec2

type Output = Vec2

The resulting type after applying the - operator.

pub fn neg(self) -> Vec2

Performs the unary - operation. Read more

impl NumExt for Vec2

pub fn at_least(self, lower_limit: Vec2) -> Vec2

More readable version of self.max(lower_limit)

pub fn at_most(self, upper_limit: Vec2) -> Vec2

More readable version of self.min(upper_limit)

impl PartialEq<Vec2> for Vec2

pub fn eq(&self, other: &Vec2) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

pub fn ne(&self, other: &Vec2) -> bool

This method tests for !=.

impl Sub<Vec2> for Vec2

type Output = Vec2

The resulting type after applying the - operator.

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

Performs the - operation. Read more

impl Sub<Vec2> for Pos2

type Output = Pos2

The resulting type after applying the - operator.

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

Performs the - operation. Read more

impl SubAssign<Vec2> for Vec2

pub fn sub_assign(&mut self, rhs: Vec2)

Performs the -= operation. Read more

impl SubAssign<Vec2> for Pos2

pub fn sub_assign(&mut self, rhs: Vec2)

Performs the -= operation. Read more

impl Copy for Vec2

impl Eq for Vec2

impl StructuralPartialEq for Vec2

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> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.