Rect class
Immutable 2D rectangle with integer position and size. Note that a Rect can be constructed with negative size values; this will be handled properly.
For many operations, the rectangle is treated as a group of columns and rows. For example, consider the Rect defined by top=1, right=4, bottom=5, left=1. This rectangle consists of 3 columns (right - left) and 4 rows (bottom - top). For grid-based game logic, this is almost always the behavior we want.
Constructors
- Rect(Vec2 position, Vec2 size)
-
const
- Rect.atOrigin(int width, int height)
- Create a Rect positioned at (0, 0) with the given width and height
- Rect.positionAndSize(int x, int y, int width, int height)
- Create a Rect at the given position coordinates with the given width and height
- Rect.sides(int top, int right, int bottom, int left)
- Create a Rect using the given bounds
Properties
- absArea → int
-
Area of the rectangle (always positive)
no setter
- area → int
-
Area of the rectangle (may be negative)
no setter
- aspectRatio → double
-
Aspect ratio of the rectangle (always >= 1.0)
no setter
- bottom → int
-
Vertical coordinate of the bottom side of this rectangle
no setter
- bottomLeft → Vec2
-
Bottom-left corner of the rectangle
no setter
- bottomRight → Vec2
-
Bottom-right corner of the rectangle
no setter
- center → Vec2
-
Integer center point of the rectangle
no setter
- hashCode → int
-
The hash code for this object.
no setteroverride
- height → int
-
Height of the rectangle
no setter
- left → int
-
Horizontal coordinate of the left side of this rectangle
no setter
- position → Vec2
-
final
- right → int
-
Horizontal coordinate of the right side of this rectangle
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- size → Vec2
-
final
- top → int
-
Vertical coordinate of the top side of this rectangle
no setter
- topLeft → Vec2
-
Top-left corner of the rectangle
no setter
- topRight → Vec2
-
Top-right corner of the rectangle
no setter
- width → int
-
Width of the rectangle
no setter
- x → int
-
Horizontal coordinate of the top-left corner of this rectangle
no setter
- y → int
-
Vertical coordinate of the top-left corner of this rectangle
no setter
Methods
-
centerRect(
int width, int height) → Rect -
Create a new Rect with the given
widthandheightthat is centered on this rectangle. -
clamp(
Vec2 point) → Vec2 -
Clamps the given
pointto the nearest point that is within the bounds of this Rect. Returns the clamped point as a new Vec2. -
contains(
Object? other) → bool -
Returns true if
otheris a VectorBase or a Rect and is contained within this rectangle. For this operation the rectangle is treated as a group of columns and rows. -
containsRect(
Rect other) → bool -
Returns true if
otheris contained within this rectangle, including being equivalent to this rectangle. That is,other's top, right, bottom, and left must be equal to or inside this rectangle. -
containsVec(
VectorBase vector) → bool -
Returns true if
vectoris anywhere within the columns and rows enclosed by this rectangle. -
distanceTo(
Rect other) → int -
Returns the distance between this Rect and
other. This is minimum length that a corridor would have to be to go from one Rect to the other. If the two Rects are adjacent, returns zero. If they overlap, returns -1. -
expand(
int amount) → Rect -
Create a new Rect by expanding all four sides of this rectangle outwards
by the given
amount. Calling with a negativeamountwill return a shrunken Rect (see shrink). -
getBorder(
) → List< Vec2> -
getPoints(
) → List< Vec2> - Get a list of all points enclosed by this Rect.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
shrink(
int amount) → Rect -
Create a new Rect by shrinking all four sides of this rectangle inwards
by the given
amount. Calling with a negativeamountwill return an expanded Rect. -
toString(
) → String -
A string representation of this object.
override