Struct egui::Rect [−]
A rectangular region of space.
Normally given in points, e.g. logical pixels.
Fields
min: Pos2
max: 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
Use Rect::EVERYTHING
pub fn nothing() -> Rect
Use Rect::NOTHING
pub fn invalid() -> Rect
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
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 / highaspect_ratio = 1
: squareaspect_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
pub fn clone(&self) -> Rect
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,