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. AABB is Rect2. Note: Unlike Rect2, AABB does not have a variant that uses integer coordinates.

Tutorials

  • Math tutorial index
  • Vector math
  • Advanced vector math

    Properties

    Methods

    Property Descriptions

  • Vector3 end position + size. Setting this value will change the size.

  • Vector3 position end.

  • Vector3 size position to end. Typically, all components are positive. abs to fix it.

    Method Descriptions

  • AABB AABB ( Vector3 position, Vector3 size ) 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 ) true if this AABB completely encloses another one.

  • AABB expand ( Vector3 to_point ) AABB expanded to include a given point. Example:
    1. # position (-3, 2, 0), size (1, 1, 1)var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))# position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and Vector3(0, -1, 2)var box2 = box.expand(Vector3(0, -1, 2))

  • float get_area ( ) AABB.

  • Vector3 get_center ( ) AABB, which is equal to position + (size / 2).

  • Vector3 get_endpoint ( int idx ) AABB in space.

  • Vector3 get_longest_axis ( ) AABB.

  • int get_longest_axis_index ( ) AABB (according to Vector3‘s AXIS_* constants).

  • float get_longest_axis_size ( ) AABB.

  • Vector3 get_shortest_axis ( ) AABB.

  • int get_shortest_axis_index ( ) AABB (according to Vector3::AXIS* enum).

  • float get_shortest_axis_size ( ) 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 ) AABB grown a given amount of units towards all the sides.

  • bool has_no_area ( ) true if the AABB is flat or empty.

  • bool has_no_surface ( ) true if the AABB is empty.

  • bool has_point ( Vector3 point ) true if the AABB contains a point.

  • AABB intersection ( AABB with ) AABB. An empty AABB (size 0,0,0) is returned on failure.

  • bool intersects ( AABB with ) true if the AABB overlaps with another.

  • bool intersects_plane ( Plane plane ) true if the AABB is on both sides of a plane.

  • bool intersects_segment ( Vector3 from, Vector3 to ) true if the AABB intersects the line segment between from and to.

  • bool is_equal_approx ( AABB aabb ) true if this AABB and aabb are approximately equal, by calling @GDScript.is_equal_approx on each component.

  • AABB merge ( AABB with ) AABB that contains both this AABB and with.