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.
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–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_aabb.html