Struct egui::Rect[]

pub struct Rect {
    pub min: Pos2,
    pub max: Pos2,
}

A rectangular region of space.

Normally given in points, e.g. logical pixels.

Fields

min: Pos2max: Pos2

Implementations

impl Rect

pub const EVERYTHING: Rect

Infinite rectangle that contains everything.

pub const NOTHING: Rect

The inverse of Self::EVERYTHING: stretches from positive infinity to negative infinity. Contains no points.

This is useful as the seed for bounding bounding boxes.

let inf = f32::INFINITY;
assert!(Rect::NOTHING.size() == Vec2::splat(-inf));
assert!(Rect::NOTHING.contains(pos2(0.0, 0.0)) == false);

Example:

let mut rect = Rect::NOTHING;
rect.extend_with(pos2(2.0, 1.0));
rect.extend_with(pos2(0.0, 3.0));
assert_eq!(rect, Rect::from_min_max(pos2(0.0, 1.0), pos2(2.0, 3.0)))

pub const NAN: Rect

An invalid Rect filled with f32::NAN;

pub fn everything() -> Rect

👎 Deprecated:

Use Rect::EVERYTHING

pub fn nothing() -> Rect

👎 Deprecated:

Use Rect::NOTHING

pub fn invalid() -> Rect

👎 Deprecated:

Use Rect::NAN

pub const fn from_min_max(min: Pos2, max: Pos2) -> Rect

pub fn from_min_size(min: Pos2, size: Vec2) -> Rect

pub fn from_center_size(center: Pos2, size: Vec2) -> Rect

pub fn from_x_y_ranges(
    x_range: RangeInclusive<f32>,
    y_range: RangeInclusive<f32>
) -> Rect

pub fn from_two_pos(a: Pos2, b: Pos2) -> Rect

#[must_use]pub fn expand(self, amnt: f32) -> Rect

Expand by this much in each direction, keeping the center

#[must_use]pub fn expand2(self, amnt: Vec2) -> Rect

Expand by this much in each direction, keeping the center

#[must_use]pub fn shrink(self, amnt: f32) -> Rect

Shrink by this much in each direction, keeping the center

#[must_use]pub fn shrink2(self, amnt: Vec2) -> Rect

Shrink by this much in each direction, keeping the center

#[must_use]pub fn translate(self, amnt: Vec2) -> Rect

#[must_use]pub fn intersect(self, other: Rect) -> Rect

#[must_use]pub fn intersects(self, other: Rect) -> bool

pub fn set_width(&mut self, w: f32)

keep min

pub fn set_height(&mut self, h: f32)

keep min

pub fn set_center(&mut self, center: Pos2)

Keep size

#[must_use]pub fn contains(&self, p: Pos2) -> bool

#[must_use]pub fn clamp(&self, p: Pos2) -> Pos2

Return the given points clamped to be inside the rectangle

pub fn extend_with(&mut self, p: Pos2)

pub fn extend_with_x(&mut self, x: f32)

Expand to include the given x coordinate

pub fn extend_with_y(&mut self, y: f32)

Expand to include the given y coordinate

pub fn union(self, other: Rect) -> Rect

pub fn center(&self) -> Pos2

pub fn size(&self) -> Vec2

pub fn width(&self) -> f32

pub fn height(&self) -> f32

pub fn aspect_ratio(&self) -> f32

Width / height

  • aspect_ratio < 1: portrait / high
  • aspect_ratio = 1: square
  • aspect_ratio > 1: landscape / wide

pub fn square_proportions(&self) -> Vec2

[2, 1] for wide screen, and [1, 2] for portrait, etc. At least one dimension = 1, the other >= 1 Returns the proportions required to letter-box a square view area.

pub fn area(&self) -> f32

pub fn x_range(&self) -> RangeInclusive<f32>

pub fn y_range(&self) -> RangeInclusive<f32>

pub fn bottom_up_range(&self) -> RangeInclusive<f32>

pub fn is_empty(&self) -> bool

pub fn is_finite(&self) -> bool

pub fn left(&self) -> f32

pub fn right(&self) -> f32

pub fn top(&self) -> f32

pub fn bottom(&self) -> f32

pub fn left_top(&self) -> Pos2

pub fn center_top(&self) -> Pos2

pub fn right_top(&self) -> Pos2

pub fn left_center(&self) -> Pos2

pub fn right_center(&self) -> Pos2

pub fn left_bottom(&self) -> Pos2

pub fn center_bottom(&self) -> Pos2

pub fn right_bottom(&self) -> Pos2

Trait Implementations

impl Clone for Rect

impl Copy for Rect

impl Debug for Rect

impl Eq for Rect

impl From<[Pos2; 2]> for Rect

from (min, max) or (left top, right bottom)

impl PartialEq<Rect> for Rect

impl StructuralEq for Rect

impl StructuralPartialEq for Rect

Auto Trait Implementations

impl RefUnwindSafe for Rect

impl Send for Rect

impl Sync for Rect

impl Unpin for Rect

impl UnwindSafe for Rect

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

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

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

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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.

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.