Class AABB


  • public class AABB
    extends java.lang.Object
    An axis-aligned bounding box.
    • Field Detail

      • lowerBound

        public final Vec2 lowerBound
        Bottom left vertex of bounding box.
      • upperBound

        public final Vec2 upperBound
        Top right vertex of bounding box.
    • Constructor Detail

      • 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 Detail

      • 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,
                                     IWorldPool argPool)
        From Real-time Collision Detection, p179.
        Parameters:
        output -
        input -
      • testOverlap

        public static final boolean testOverlap​(AABB a,
                                                AABB b)
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object