AABB

Axis-Aligned Bounding Box.

Description

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

It uses floating-point coordinates. The 2D counterpart to AABB is Rect2.

Note: Unlike Rect2, AABB does not have a variant that uses integer coordinates.

Tutorials

Properties

Vector3

end

Vector3( 0, 0, 0 )

Vector3

position

Vector3( 0, 0, 0 )

Vector3

size

Vector3( 0, 0, 0 )

Methods

AABB

AABB ( Vector3 position, Vector3 size )

AABB

abs ( )

bool

encloses ( AABB with )

AABB

expand ( Vector3 to_point )

float

get_area ( )

Vector3

get_endpoint ( int idx )

Vector3

get_longest_axis ( )

int

get_longest_axis_index ( )

float

get_longest_axis_size ( )

Vector3

get_shortest_axis ( )

int

get_shortest_axis_index ( )

float

get_shortest_axis_size ( )

Vector3

get_support ( Vector3 dir )

AABB

grow ( float by )

bool

has_no_area ( )

bool

has_no_surface ( )

bool

has_point ( Vector3 point )

AABB

intersection ( AABB with )

bool

intersects ( AABB with )

bool

intersects_plane ( Plane plane )

bool

intersects_segment ( Vector3 from, Vector3 to )

bool

is_equal_approx ( AABB aabb )

AABB

merge ( AABB with )

Property Descriptions

Vector3 end

Default

Vector3( 0, 0, 0 )

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

Vector3 position

Default

Vector3( 0, 0, 0 )

Beginning corner. Typically has values lower than end.

Vector3 size

Default

Vector3( 0, 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

AABB AABB ( Vector3 position, Vector3 size )

Constructs an AABB from a position and size.

AABB abs ( )

Returns an AABB with equivalent position and size, modified so that the most-negative corner is the origin and the size is positive.

bool encloses ( AABB with )

Returns true if this AABB completely encloses another one.

AABB expand ( Vector3 to_point )

Returns this AABB expanded to include a given point.

float get_area ( )

Returns the volume of the AABB.

Vector3 get_endpoint ( int idx )

Gets the position of the 8 endpoints of the AABB in space.

Vector3 get_longest_axis ( )

Returns the normalized longest axis of the AABB.

int get_longest_axis_index ( )

Returns the index of the longest axis of the AABB (according to Vector3's AXIS_* constants).

float get_longest_axis_size ( )

Returns the scalar length of the longest axis of the AABB.

Vector3 get_shortest_axis ( )

Returns the normalized shortest axis of the AABB.

int get_shortest_axis_index ( )

Returns the index of the shortest axis of the AABB (according to Vector3::AXIS* enum).

float get_shortest_axis_size ( )

Returns the scalar length of the shortest axis of the AABB.

Vector3 get_support ( Vector3 dir )

Returns the support point in a given direction. This is useful for collision detection algorithms.

AABB grow ( float by )

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

bool has_no_area ( )

Returns true if the AABB is flat or empty.

bool has_no_surface ( )

Returns true if the AABB is empty.

bool has_point ( Vector3 point )

Returns true if the AABB contains a point.

AABB intersection ( AABB with )

Returns the intersection between two AABB. An empty AABB (size 0,0,0) is returned on failure.

bool intersects ( AABB with )

Returns true if the AABB overlaps with another.

bool intersects_plane ( Plane plane )

Returns true if the AABB is on both sides of a plane.

bool intersects_segment ( Vector3 from, Vector3 to )

Returns true if the AABB intersects the line segment between from and to.

bool is_equal_approx ( AABB aabb )

Returns true if this AABB and aabb are approximately equal, by calling @GDScript.is_equal_approx on each component.

AABB merge ( AABB with )

Returns a larger AABB that contains both this AABB and with.

© 2014–2021 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.3/classes/class_aabb.html