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.

## Tutorials

## 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

- Vector2
**end**

Default | `Vector2( 0, 0 )` |

Ending corner.

- Vector2
**position**

Default | `Vector2( 0, 0 )` |

Position (starting corner).

- Vector2
**size**

Default | `Vector2( 0, 0 )` |

Size from position to end.

## 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 this `Rect2`

expanded to include a given point.

- float
**get_area****(****)**

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`

.

## Leave a Reply