Skip to main content

Rect

Struct Rect 

Source
#[repr(C)]
pub struct Rect { pub x: f32, pub y: f32, pub w: f32, pub h: f32, }
Expand description

An axis-aligned rectangle defined by its top-left corner, width, and height.

Uses the screen-space convention: Y increases downward.

Fields§

§x: f32

X coordinate of the top-left corner.

§y: f32

Y coordinate of the top-left corner.

§w: f32

Width of the rectangle.

§h: f32

Height of the rectangle.

Implementations§

Source§

impl Rect

Source

pub const fn new(x: f32, y: f32, w: f32, h: f32) -> Self

Create a new rectangle from position and size.

Source

pub const fn from_min_max(min: Vec2, max: Vec2) -> Self

Create a rectangle from min and max corner points.

Source

pub const fn centered(center: Vec2, size: Vec2) -> Self

Create a rectangle centered at center with the given size.

Source

pub fn pos(self) -> Vec2

Top-left corner position.

Source

pub fn size(self) -> Vec2

Size of the rectangle.

Source

pub fn center(self) -> Vec2

Center point of the rectangle.

Source

pub fn max(self) -> Vec2

Bottom-right corner (exclusive).

Source

pub fn top_right(self) -> Vec2

Top-right corner.

Source

pub fn bottom_left(self) -> Vec2

Bottom-left corner.

Source

pub fn contains(self, point: Vec2) -> bool

Check if the rectangle contains a point.

Source

pub fn contains_rect(self, other: Rect) -> bool

Check if this rectangle fully contains another.

Source

pub fn overlaps(self, other: Rect) -> bool

Check if two rectangles overlap (AABB intersection test).

Source

pub fn intersection(self, other: Rect) -> Option<Rect>

Compute the intersection rectangle, or None if they don’t overlap.

Source

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

Compute the union rectangle that covers both.

Source

pub fn inflated(self, amount: f32) -> Rect

Inflate the rectangle by amount on all sides.

Source

pub fn deflated(self, amount: f32) -> Rect

Shrink the rectangle by amount on all sides.

Source

pub fn scaled(self, scale: Vec2) -> Rect

Scale the rectangle around its center.

Source

pub fn with_center(self, center: Vec2) -> Rect

Move the rectangle so its center is at center.

Source

pub fn translated(self, offset: Vec2) -> Rect

Translate the rectangle by an offset.

Source

pub fn closest_point(self, point: Vec2) -> Vec2

Closest point inside the rectangle to the given point.

Source

pub fn area(self) -> f32

Area of the rectangle.

Source

pub fn perimeter(self) -> f32

Perimeter of the rectangle.

Source

pub fn aspect_ratio(self) -> f32

Aspect ratio (width / height).

Trait Implementations§

Source§

impl Clone for Rect

Source§

fn clone(&self) -> Rect

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Rect

Source§

impl Debug for Rect

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Rect

Source§

fn default() -> Rect

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

impl Display for Rect

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Rect

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Pod for Rect

Source§

impl StructuralPartialEq for Rect

Source§

impl Zeroable for Rect

Source§

fn zeroed() -> Self

Auto Trait Implementations§

§

impl Freeze for Rect

§

impl RefUnwindSafe for Rect

§

impl Send for Rect

§

impl Sync for Rect

§

impl Unpin for Rect

§

impl UnsafeUnpin for Rect

§

impl UnwindSafe for Rect

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyBitPattern for T
where T: Pod,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedBitPattern for T
where T: AnyBitPattern,

Source§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
Source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> NoUninit for T
where T: Pod,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.