Rect2

2D axis-aligned bounding box.

Description

Rect2 consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.

It uses floating-point coordinates.

The 3D counterpart to Rect2 is AABB.

Properties

Vector2

end

Vector2( 0, 0 )

Vector2

position

Vector2( 0, 0 )

Vector2

size

Vector2( 0, 0 )

Methods

Rect2

Rect2 ( Vector2 position, Vector2 size )

Rect2

Rect2 ( float x, float y, float width, float height )

Rect2

abs ( )

Rect2

clip ( Rect2 b )

bool

encloses ( Rect2 b )

Rect2

expand ( Vector2 to )

float

get_area ( )

Rect2

grow ( float by )

Rect2

grow_individual ( float left, float top, float right, float bottom )

Rect2

grow_margin ( int margin, float by )

bool

has_no_area ( )

bool

has_point ( Vector2 point )

bool

intersects ( Rect2 b, bool include_borders=false )

bool

is_equal_approx ( Rect2 rect )

Rect2

merge ( Rect2 b )

Property Descriptions

Default

Vector2( 0, 0 )

Ending corner. This is calculated as position + size. Setting this value will change the size.


Default

Vector2( 0, 0 )

Beginning corner. Typically has values lower than end.


Default

Vector2( 0, 0 )

Size from position to end. Typically, all components are positive.

If the size is negative, you can use abs to fix it.

Method Descriptions

Constructs a Rect2 by position and size.


Constructs a Rect2 by x, y, width, and height.


Returns a Rect2 with equivalent position and area, modified so that the top-left corner is the origin and width and height are positive.


Returns the intersection of this Rect2 and b.


Returns true if this Rect2 completely encloses another one.


Returns this Rect2 expanded to include a given point.


Returns the area of the Rect2.


Returns a copy of the Rect2 grown a given amount of units towards all the sides.


Returns a copy of the Rect2 grown a given amount of units towards each direction individually.


Returns a copy of the Rect2 grown a given amount of units towards the Margin direction.


  • bool has_no_area ( )

Returns true if the Rect2 is flat or empty.


Returns true if the Rect2 contains a point.


Returns true if the Rect2 overlaps with b (i.e. they have at least one point in common).

If include_borders is true, they will also be considered overlapping if their borders touch, even without intersection.


Returns true if this Rect2 and rect are approximately equal, by calling is_equal_approx on each component.


Returns a larger Rect2 that contains this Rect2 and b.