pub struct GridRect {
    pub center: IVec2,
    /* private fields */
}
Expand description

A rectangle of points on a grid.

Fields§

§center: IVec2

Implementations§

source§

impl GridRect

source

pub fn new(center: impl GridPoint, size: impl GridPoint) -> GridRect

source

pub fn origin(size: impl GridPoint) -> Self

Create a grid rect with it’s center set to 0,0

source

pub fn width(&self) -> usize

source

pub fn height(&self) -> usize

source

pub fn from_points(a: impl GridPoint, b: impl GridPoint) -> GridRect

Create a grid rect from a min and max position.

source

pub fn from_bl(pos: impl GridPoint, size: impl GridPoint) -> GridRect

Create a rect with the bottom left corner at the given position.

source

pub fn min(&self) -> Vec2

Retrieve the bottom-left-most point of the rect

source

pub fn max(&self) -> Vec2

Retrieve the top-right-most point of the rect

source

pub fn min_i(&self) -> IVec2

Retrieve the bottom-left-most point of the rect as a grid position

source

pub fn max_i(&self) -> IVec2

Retrieve the top-right-most point of the rect as a grid position

source

pub fn min_max_i(&self) -> [IVec2; 2]

source

pub fn size(&self) -> IVec2

source

pub fn pivot_point(&self, pivot: Pivot) -> IVec2

Retrieve the position of a given corner of the rect

source

pub fn resized(&self, amount: impl GridPoint) -> GridRect

Return a rect with the same center but resized by the given amount on each axis

source

pub fn pivoted(&self, pivot: Pivot) -> GridRect

Returns a rect adjusted to the given pivot.

source

pub fn translated(&self, xy: impl GridPoint) -> GridRect

Returns a rect with it’s position adjusted by the given amount

source

pub fn contains(&self, p: impl GridPoint) -> bool

Check if a given point lies inside the rect

source

pub fn contains_rect(&self, rect: GridRect) -> bool

Returns true if the given rect is entirely contained within this one.

source

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

Check if any part of a rect overlaps another

source

pub fn envelope_point(&mut self, point: impl GridPoint)

Adjusts a single corner of the rect to contain the given point if it isn’t already.

source

pub fn envelope_rect(&mut self, rect: GridRect)

source

pub fn corners(&self) -> Corners

Returns the 4 corners of the rect, which can be accessed by index or name.

Order is BottomLeft, TopLeft, TopRight, BottomRight

source

pub fn iter_border(&self) -> BorderIterator

Returns an iterator that visits the position of every border tile in the rect.

source

pub fn clipped(&self, clipper: GridRect) -> GridRect

Returns a rect clipped by the bounds of the given rect

Trait Implementations§

source§

impl Clone for GridRect

source§

fn clone(&self) -> GridRect

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for GridRect

source§

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

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

impl Default for GridRect

source§

fn default() -> GridRect

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

impl Display for GridRect

source§

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

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

impl GridShape for GridRect

source§

fn iter(&self) -> GridShapeIterator

source§

fn pos(&self) -> IVec2

source§

fn set_pos(&mut self, pos: IVec2)

source§

fn bounds(&self) -> GridRect

Get a rect encompassing the entire shape
source§

impl IntoIterator for GridRect

§

type Item = IVec2

The type of the elements being iterated over.
§

type IntoIter = GridRectIter

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq<GridRect> for GridRect

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for GridRect

source§

impl StructuralPartialEq for GridRect

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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> ShapeClone for Twhere T: 'static + GridShape + Clone,

source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

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

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

§

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 Twhere U: TryFrom<T>,

§

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.