Struct egui::Vec2 [−]
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
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
Use Vec2::ZERO instead
pub fn infinity() -> Vec2
Use Vec2::INFINITY instead
pub const fn new(x: f32, y: f32) -> Vec2
#[must_use]pub fn normalized(self) -> Vec2
#[must_use]pub fn normalized(self) -> Vec2
Safe normalize: returns zero if input is zero.
pub fn rot90(self) -> Vec2
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
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
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
#[must_use]pub fn min(self, other: Vec2) -> Vec2
#[must_use]pub fn max(self, other: Vec2) -> Vec2
#[must_use]pub fn clamp(self, min: Vec2, max: Vec2) -> Vec2
Trait Implementations
impl AddAssign<Vec2> for Pos2
impl AddAssign<Vec2> for Pos2
pub fn add_assign(&mut self, rhs: Vec2)
pub fn add_assign(&mut self, rhs: Vec2)
Performs the +=
operation. Read more
impl AddAssign<Vec2> for Vec2
impl AddAssign<Vec2> for Vec2
pub fn add_assign(&mut self, rhs: Vec2)
pub fn add_assign(&mut self, rhs: Vec2)
Performs the +=
operation. Read more
impl MulAssign<f32> for Vec2
impl MulAssign<f32> for Vec2
pub fn mul_assign(&mut self, rhs: f32)
pub fn mul_assign(&mut self, rhs: f32)
Performs the *=
operation. Read more
impl SubAssign<Vec2> for Pos2
impl SubAssign<Vec2> for Pos2
pub fn sub_assign(&mut self, rhs: Vec2)
pub fn sub_assign(&mut self, rhs: Vec2)
Performs the -=
operation. Read more
impl SubAssign<Vec2> for Vec2
impl SubAssign<Vec2> for Vec2
pub fn sub_assign(&mut self, rhs: Vec2)
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> 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