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.
Tutorials
Properties
| ||
| ||
|
Methods
abs ( ) | |
get_area ( ) | |
get_center ( ) | |
grow_individual ( float left, float top, float right, float bottom ) | |
grow_margin ( int margin, float by ) | |
has_no_area ( ) | |
intersects ( Rect2 b, bool include_borders=false ) | |
is_equal_approx ( Rect2 rect ) | |
Property Descriptions
- Vector2 end
Default |
|
Ending corner. This is calculated as position + size
. Setting this value will change the size.
- Vector2 position
Default |
|
Beginning corner. Typically has values lower than end.
- Vector2 size
Default |
|
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.
- Rect2 abs ( )
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 a copy of this Rect2
expanded to include a given point.
Example:
# position (-3, 2), size (1, 1)
var rect = Rect2(Vector2(-3, 2), Vector2(1, 1))
# position (-3, -1), size (3, 4), so we fit both rect and Vector2(0, -1)
var rect2 = rect.expand(Vector2(0, -1))
- float get_area ( )
Returns the area of the Rect2
. See also has_no_area.
- Vector2 get_center ( )
Returns the center of the Rect2
, which is equal to position + (size / 2).
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, false
otherwise. See also get_area.
Note: If the Rect2
has a negative size and is not flat or empty, has_no_area will return true
.
Returns true
if the Rect2
contains a point. By convention, the right and bottom edges of the Rect2
are considered exclusive, so points on these edges are not included.
Note: This method is not reliable for Rect2
with a negative size. Use abs to get a positive sized equivalent rectangle to check for contained points.
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
.