# Class AABB

java.lang.Object
com.codename1.gaming.physics.box2d.collision.AABB

public class AABB extends Object
An axis-aligned bounding box.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final Vec2`
  `lowerBound`
  Bottom left vertex of bounding box.
  `final Vec2`
  `upperBound`
  Top right vertex of bounding box.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AABB()`
  Creates the default object, with vertices at 0,0 and 0,0.
  `AABB(AABB copy)`
  Copies from the given object
  `AABB(Vec2 lowerVertex, Vec2 upperVertex)`
  Creates an AABB object using the given bounding vertices.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final void`
  `combine(AABB aabb)`
  Combines another aabb with this one
  `final void`
  `combine(AABB aabb1, AABB aab)`
  Combine two AABBs into this one.
  `final boolean`
  `contains(AABB aabb)`
  Does this aabb contain the provided AABB.
  `final Vec2`
  `getCenter()`
  Get the center of the AABB
  `final void`
  `getCenterToOut(Vec2 out)`
  `final Vec2`
  `getExtents()`
  Get the extents of the AABB (half-widths).
  `final void`
  `getExtentsToOut(Vec2 out)`
  `final float`
  `getPerimeter()`
  Gets the perimeter length
  `final void`
  `getVertices(Vec2[] argRay)`
  `final boolean`
  `isValid()`
  Verify that the bounds are sorted
  `final boolean`
  `raycast(RayCastOutput output, RayCastInput input)`
  `final boolean`
  `raycast(RayCastOutput output, RayCastInput input, IWorldPool argPool)`
  From Real-time Collision Detection, p179.
  `final void`
  `set(AABB aabb)`
  Sets this object from the given object
  `static final boolean`
  `testOverlap(AABB a, AABB b)`
  `final String`
  `toString()`
  Returns a string representation of the object.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### lowerBound

    public final Vec2 lowerBound
    Bottom left vertex of bounding box.

  - ### upperBound

    public final Vec2 upperBound
    Top right vertex of bounding box.

- ## Constructor Details

  - ### AABB

    public AABB()
    Creates the default object, with vertices at 0,0 and 0,0.

  - ### AABB

    public AABB(AABB copy)
    Copies from the given object
    Parameters:
      `copy` - the object to copy from

  - ### AABB

    public AABB(Vec2 lowerVertex, Vec2 upperVertex)
    Creates an AABB object using the given bounding vertices.
    Parameters:
      `lowerVertex` - the bottom left vertex of the bounding box
      `maxVertex` - the top right vertex of the bounding box

- ## Method Details

  - ### set

    public final void set(AABB aabb)
    Sets this object from the given object
    Parameters:
      `aabb` - the object to copy from

  - ### isValid

    public final boolean isValid()
    Verify that the bounds are sorted

  - ### getCenter

    public final Vec2 getCenter()
    Get the center of the AABB
    Returns:

  - ### getCenterToOut

    public final void getCenterToOut(Vec2 out)

  - ### getExtents

    public final Vec2 getExtents()
    Get the extents of the AABB (half-widths).
    Returns:

  - ### getExtentsToOut

    public final void getExtentsToOut(Vec2 out)

  - ### getVertices

    public final void getVertices(Vec2[] argRay)

  - ### combine

    public final void combine(AABB aabb1, AABB aab)
    Combine two AABBs into this one.
    Parameters:
      `aabb1` -
      `aab` -

  - ### getPerimeter

    public final float getPerimeter()
    Gets the perimeter length
    Returns:

  - ### combine

    public final void combine(AABB aabb)
    Combines another aabb with this one
    Parameters:
      `aabb` -

  - ### contains

    public final boolean contains(AABB aabb)
    Does this aabb contain the provided AABB.
    Returns:

  - ### raycast

    public final boolean raycast(RayCastOutput output, RayCastInput input)
    Parameters:
      `output` -
      `input` -
    Returns:

  - ### raycast

    public final boolean raycast(RayCastOutput output, RayCastInput input, IWorldPool argPool)
    From Real-time Collision Detection, p179.
    Parameters:
      `output` -
      `input` -

  - ### testOverlap

    public static final boolean testOverlap(AABB a, AABB b)

  - ### toString

    public final String toString()
    Description copied from class: `Object`
    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
    Overrides:
      `toString` in class `Object`