Module com.io7m.jregions.core
Package com.io7m.jregions.core.unparameterized.areas

## Class AreasBI

- java.lang.Object
- - com.io7m.jregions.core.unparameterized.areas.AreasBI

-     public final class AreasBI
      extends java.lang.Object

  Functions over areas.

  These functions operate using the concepts of minimum-x, maximum-x, minimum-y, and maximum-y edges. It is up to individual applications to assign meaning to these edges such as "left" for minimum-x and "top" for minimum-y.

- - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AreaBI` | `alignCenter​(AreaBI outer, AreaBI inner)` | Align the area `inner` such that the center of the area is equal to the center of `outer`.
    `static AreaBI` | `alignHorizontallyCenter​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnXCenter(AreaBI, AreaBI)`
    `static AreaBI` | `alignHorizontallyMaxX​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnXMaxX(AreaBI, AreaBI)`
    `static AreaBI` | `alignHorizontallyMaxXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Deprecated. Use `alignOnXMaxXOffset(AreaBI, AreaBI, java.math.BigInteger)`
    `static AreaBI` | `alignHorizontallyMinX​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnXMinX(AreaBI, AreaBI)`
    `static AreaBI` | `alignHorizontallyMinXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Deprecated. Use `alignOnXMinXOffset(AreaBI, AreaBI, java.math.BigInteger)`
    `static AreaBI` | `alignMaxYMaxX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignMaxYMaxXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
    `static AreaBI` | `alignMaxYMaxXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset_x, java.math.BigInteger offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaBI` | `alignMaxYMinX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignMaxYMinXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
    `static AreaBI` | `alignMaxYMinXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset_x, java.math.BigInteger offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaBI` | `alignMinYMaxX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignMinYMaxXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
    `static AreaBI` | `alignMinYMaxXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset_x, java.math.BigInteger offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaBI` | `alignMinYMinX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignMinYMinXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
    `static AreaBI` | `alignMinYMinXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset_x, java.math.BigInteger offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaBI` | `alignOnXCenter​(AreaBI outer, AreaBI inner)` | Align the area `inner` along the X axis in the center of `outer`.
    `static AreaBI` | `alignOnXMaxX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignOnXMaxXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
    `static AreaBI` | `alignOnXMaxXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Align the area `inner` along the X axis against the inside maximum-x edge of `outer`.
    `static AreaBI` | `alignOnXMinX​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignOnXMinXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
    `static AreaBI` | `alignOnXMinXOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Align the area `inner` along the X axis against the inside minimum-x edge of `outer`.
    `static AreaBI` | `alignOnYCenter​(AreaBI outer, AreaBI inner)` | Align the area `inner` along the Y axis in the center of `outer`.
    `static AreaBI` | `alignOnYMaxY​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignOnYMaxYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
    `static AreaBI` | `alignOnYMaxYOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Align the area `inner` along the Y axis against the inside maximum-y edge of `outer`.
    `static AreaBI` | `alignOnYMinY​(AreaBI outer, AreaBI inner)` | Equivalent to calling `alignOnYMinYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
    `static AreaBI` | `alignOnYMinYOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Align the area `inner` along the Y axis against the inside minimum-y edge of `outer`.
    `static AreaBI` | `alignVerticallyCenter​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnYCenter(AreaBI, AreaBI)`
    `static AreaBI` | `alignVerticallyMaxY​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnYMaxY(AreaBI, AreaBI)`
    `static AreaBI` | `alignVerticallyMaxYOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Deprecated. Use `alignOnYMaxYOffset(AreaBI, AreaBI, java.math.BigInteger)`
    `static AreaBI` | `alignVerticallyMinY​(AreaBI outer, AreaBI inner)` | Deprecated. Use `alignOnYMinY(AreaBI, AreaBI)`
    `static AreaBI` | `alignVerticallyMinYOffset​(AreaBI outer, AreaBI inner, java.math.BigInteger offset)` | Deprecated. Use `alignOnYMinYOffset(AreaBI, AreaBI, java.math.BigInteger)`
    `static AreaBI` | `containing​(AreaBI a, AreaBI b)` | Construct a area that will contain both `a` and `b`.
    `static boolean` | `contains​(AreaBI a, AreaBI b)` | Determine whether or not one area contains another.
    `static boolean` | `containsPoint​(AreaBI a, java.math.BigInteger x, java.math.BigInteger y)` | Determine whether or not a area contains a given point.
    `static boolean` | `couldFitInside​(AreaBI a, AreaBI b)` | Determine whether or not one area could fit inside another.
    `static AreaBI` | `create​(java.math.BigInteger x, java.math.BigInteger y, java.math.BigInteger size_x, java.math.BigInteger size_y)` | Create an area of size `size_x` on the X axis and size `size_y` on the Y axis, placing the minimum corner at `(x, y)`.
    `static AreaBI` | `fitBetweenHorizontal​(AreaBI fit, AreaBI a, AreaBI b)` | Deprecated. Use `fitBetweenOnX(AreaBI, AreaBI, AreaBI)`
    `static AreaBI` | `fitBetweenOnX​(AreaBI fit, AreaBI a, AreaBI b)` | Attempt to fit `fit` between `a` and `b`, horizontally.
    `static AreaBI` | `fitBetweenOnY​(AreaBI fit, AreaBI a, AreaBI b)` | Attempt to fit `fit` between `a` and `b`, vertically.
    `static AreaBI` | `fitBetweenVertical​(AreaBI fit, AreaBI a, AreaBI b)` | Deprecated. Use `fitBetweenOnY(AreaBI, AreaBI, AreaBI)`
    `static AreaBI` | `hollowOut​(AreaBI outer, java.math.BigInteger min_x_offset, java.math.BigInteger max_x_offset, java.math.BigInteger min_y_offset, java.math.BigInteger max_y_offset)` | Construct a new area that fits inside `outer` based on the given offsets from each edge.
    `static AreaBI` | `hollowOutEvenly​(AreaBI outer, java.math.BigInteger offset)` | Equivalent to calling `hollowOut(AreaBI, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)` with `offset` for all offset parameters.
    `static AreaBI` | `moveAbsolute​(AreaBI area, java.math.BigInteger x, java.math.BigInteger y)` | Move the given area to `(x, y)`.
    `static AreaBI` | `moveRelative​(AreaBI area, java.math.BigInteger x, java.math.BigInteger y)` | Move the given area by `(x, y)`.
    `static AreaBI` | `moveToOrigin​(AreaBI area)` | Move the given area to `(0, 0)`.
    `static boolean` | `overlaps​(AreaBI a, AreaBI b)` | Determine whether or not two areas overlap.
    `static AreaBI` | `scaleFromCenter​(AreaBI area, java.math.BigInteger x_diff, java.math.BigInteger y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaBI` | `scaleFromMaxYMaxX​(AreaBI area, java.math.BigInteger x_diff, java.math.BigInteger y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaBI` | `scaleFromMaxYMinX​(AreaBI area, java.math.BigInteger x_diff, java.math.BigInteger y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaBI` | `scaleFromMinYMaxX​(AreaBI area, java.math.BigInteger x_diff, java.math.BigInteger y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaBI` | `scaleFromMinYMinX​(AreaBI area, java.math.BigInteger x_diff, java.math.BigInteger y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaBI` | `setSizeFromCenter​(AreaBI area, java.math.BigInteger sizeX, java.math.BigInteger sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaBI` | `setSizeFromMaxYMaxX​(AreaBI area, java.math.BigInteger sizeX, java.math.BigInteger sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaBI` | `setSizeFromMaxYMinX​(AreaBI area, java.math.BigInteger sizeX, java.math.BigInteger sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaBI` | `setSizeFromMinYMaxX​(AreaBI area, java.math.BigInteger sizeX, java.math.BigInteger sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaBI` | `setSizeFromMinYMinX​(AreaBI area, java.math.BigInteger sizeX, java.math.BigInteger sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static java.lang.String` | `show​(AreaBI area)` |
    `static java.lang.String` | `showToBuilder​(AreaBI area, java.lang.StringBuilder sb)` |
    `static AreaSizeBI` | `size​(AreaBI area)` |
    `static AreaXSplitBI<AreaBI>` | `splitAlongParallelToX​(AreaBI area, java.math.BigInteger y)` | Split `area` along a line parallel to the X axis placed at `y` units from its own minimum-y edge.
    `static AreaYSplitBI<AreaBI>` | `splitAlongParallelToY​(AreaBI area, java.math.BigInteger x)` | Split `area` along a line parallel to the Y axis placed at `x` units from its own minimum-x edge.
    `static AreaXYSplitBI<AreaBI>` | `splitAlongXY​(AreaBI area, java.math.BigInteger x, java.math.BigInteger y)` | Split `area` along a two axis-aligned perpendicular lines that intercept at `(x, y)`.

    - ### Methods inherited from class java.lang.Object

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

- - ### Method Detail

    - #### create

          public static AreaBI create​(java.math.BigInteger x,
                                      java.math.BigInteger y,
                                      java.math.BigInteger size_x,
                                      java.math.BigInteger size_y)

      Create an area of size `size_x` on the X axis and size `size_y` on the Y axis, placing the minimum corner at `(x, y)`.
      Parameters:
        `x` - The X value of the minimum corner
        `y` - The Y value of the minimum corner
        `size_x` - The size of the area on the X axis
        `size_y` - The size of the area on the Y axis
      Returns:
        An area

    - #### contains

          public static boolean contains​(AreaBI a,
                                         AreaBI b)

      Determine whether or not one area contains another.

      Containing is reflexive: `contains(a, a) == true`.

      Containing is transitive: `contains(a, b) \u2192 contains(b, c) \u2192 contains(a, c)`.

      Containing is not necessarily symmetric.

      Parameters:
        `a` - Area A
        `b` - Area B
      Returns:
        `true` iff `a` contains `b`

    - #### moveRelative

          public static AreaBI moveRelative​(AreaBI area,
                                            java.math.BigInteger x,
                                            java.math.BigInteger y)

      Move the given area by `(x, y)`.
      Parameters:
        `area` - The area
        `x` - The amount to move on the X axis
        `y` - The amount to move on the Y axis
      Returns:
        A moved area

    - #### moveAbsolute

          public static AreaBI moveAbsolute​(AreaBI area,
                                            java.math.BigInteger x,
                                            java.math.BigInteger y)

      Move the given area to `(x, y)`.
      Parameters:
        `area` - The area
        `x` - The position to which to move on the X axis
        `y` - The position to which to move on the Y axis
      Returns:
        A moved area

    - #### moveToOrigin

          public static AreaBI moveToOrigin​(AreaBI area)

      Move the given area to `(0, 0)`.
      Parameters:
        `area` - The area
      Returns:
        A moved area

    - #### alignOnXCenter

          public static AreaBI alignOnXCenter​(AreaBI outer,
                                              AreaBI inner)

      Align the area `inner` along the X axis in the center of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnXMinX

          public static AreaBI alignOnXMinX​(AreaBI outer,
                                            AreaBI inner)

      Equivalent to calling `alignOnXMinXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnXMinXOffset

          public static AreaBI alignOnXMinXOffset​(AreaBI outer,
                                                  AreaBI inner,
                                                  java.math.BigInteger offset)

      Align the area `inner` along the X axis against the inside minimum-x edge of `outer`. The area will be at least `offset` units from the minimum-x edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnXMaxX

          public static AreaBI alignOnXMaxX​(AreaBI outer,
                                            AreaBI inner)

      Equivalent to calling `alignOnXMaxXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnXMaxXOffset

          public static AreaBI alignOnXMaxXOffset​(AreaBI outer,
                                                  AreaBI inner,
                                                  java.math.BigInteger offset)

      Align the area `inner` along the X axis against the inside maximum-x edge of `outer`. The area will be at least `offset` units from the maximum-x edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnYMinY

          public static AreaBI alignOnYMinY​(AreaBI outer,
                                            AreaBI inner)

      Equivalent to calling `alignOnYMinYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnYMinYOffset

          public static AreaBI alignOnYMinYOffset​(AreaBI outer,
                                                  AreaBI inner,
                                                  java.math.BigInteger offset)

      Align the area `inner` along the Y axis against the inside minimum-y edge of `outer`. The area will be at least `offset` units from the minimum-y edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnYMaxY

          public static AreaBI alignOnYMaxY​(AreaBI outer,
                                            AreaBI inner)

      Equivalent to calling `alignOnYMaxYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnYMaxYOffset

          public static AreaBI alignOnYMaxYOffset​(AreaBI outer,
                                                  AreaBI inner,
                                                  java.math.BigInteger offset)

      Align the area `inner` along the Y axis against the inside maximum-y edge of `outer`. The area will be at least `offset` units from the maximum-y edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignOnYCenter

          public static AreaBI alignOnYCenter​(AreaBI outer,
                                              AreaBI inner)

      Align the area `inner` along the Y axis in the center of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area
      Since:
        1.1.0

    - #### alignHorizontallyCenter

          @Deprecated
          public static AreaBI alignHorizontallyCenter​(AreaBI outer,
                                                       AreaBI inner)

      Deprecated. Use `alignOnXCenter(AreaBI, AreaBI)`
      Align the area `inner` horizontally in the center of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignHorizontallyMinX

          @Deprecated
          public static AreaBI alignHorizontallyMinX​(AreaBI outer,
                                                     AreaBI inner)

      Deprecated. Use `alignOnXMinX(AreaBI, AreaBI)`
      Equivalent to calling `alignHorizontallyMinXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignHorizontallyMinXOffset

          @Deprecated
          public static AreaBI alignHorizontallyMinXOffset​(AreaBI outer,
                                                           AreaBI inner,
                                                           java.math.BigInteger offset)

      Deprecated. Use `alignOnXMinXOffset(AreaBI, AreaBI, java.math.BigInteger)`
      Align the area `inner` horizontally against the inside minimum-x edge of `outer`. The area will be at least `offset` units from the minimum-x edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area

    - #### alignHorizontallyMaxX

          @Deprecated
          public static AreaBI alignHorizontallyMaxX​(AreaBI outer,
                                                     AreaBI inner)

      Deprecated. Use `alignOnXMaxX(AreaBI, AreaBI)`
      Equivalent to calling `alignHorizontallyMaxXOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignHorizontallyMaxXOffset

          @Deprecated
          public static AreaBI alignHorizontallyMaxXOffset​(AreaBI outer,
                                                           AreaBI inner,
                                                           java.math.BigInteger offset)

      Deprecated. Use `alignOnXMaxXOffset(AreaBI, AreaBI, java.math.BigInteger)`
      Align the area `inner` horizontally against the inside maximum-x edge of `outer`. The area will be at least `offset` units from the maximum-x edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area

    - #### alignVerticallyMinY

          @Deprecated
          public static AreaBI alignVerticallyMinY​(AreaBI outer,
                                                   AreaBI inner)

      Deprecated. Use `alignOnYMinY(AreaBI, AreaBI)`
      Equivalent to calling `alignVerticallyMinYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignVerticallyMinYOffset

          @Deprecated
          public static AreaBI alignVerticallyMinYOffset​(AreaBI outer,
                                                         AreaBI inner,
                                                         java.math.BigInteger offset)

      Deprecated. Use `alignOnYMinYOffset(AreaBI, AreaBI, java.math.BigInteger)`
      Align the area `inner` vertically against the inside minimum-y edge of `outer`. The area will be at least `offset` units from the minimum-y edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area

    - #### alignVerticallyMaxY

          @Deprecated
          public static AreaBI alignVerticallyMaxY​(AreaBI outer,
                                                   AreaBI inner)

      Deprecated. Use `alignOnYMaxY(AreaBI, AreaBI)`
      Equivalent to calling `alignVerticallyMaxYOffset(AreaBI, AreaBI, java.math.BigInteger)` with a zero offset.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignVerticallyMaxYOffset

          @Deprecated
          public static AreaBI alignVerticallyMaxYOffset​(AreaBI outer,
                                                         AreaBI inner,
                                                         java.math.BigInteger offset)

      Deprecated. Use `alignOnYMaxYOffset(AreaBI, AreaBI, java.math.BigInteger)`
      Align the area `inner` vertically against the inside maximum-y edge of `outer`. The area will be at least `offset` units from the maximum-y edge.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset` - The offset from the edge
      Returns:
        An aligned area

    - #### alignVerticallyCenter

          @Deprecated
          public static AreaBI alignVerticallyCenter​(AreaBI outer,
                                                     AreaBI inner)

      Deprecated. Use `alignOnYCenter(AreaBI, AreaBI)`
      Align the area `inner` vertically in the center of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignMinYMinX

          public static AreaBI alignMinYMinX​(AreaBI outer,
                                             AreaBI inner)

      Equivalent to calling `alignMinYMinXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignMinYMinXOffset

          public static AreaBI alignMinYMinXOffset​(AreaBI outer,
                                                   AreaBI inner,
                                                   java.math.BigInteger offset_x,
                                                   java.math.BigInteger offset_y)

      Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset_x` - The offset from the minimum-x edge
        `offset_y` - The offset from the minimum-y edge
      Returns:
        An aligned area

    - #### alignMinYMaxX

          public static AreaBI alignMinYMaxX​(AreaBI outer,
                                             AreaBI inner)

      Equivalent to calling `alignMinYMaxXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignMinYMaxXOffset

          public static AreaBI alignMinYMaxXOffset​(AreaBI outer,
                                                   AreaBI inner,
                                                   java.math.BigInteger offset_x,
                                                   java.math.BigInteger offset_y)

      Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset_x` - The offset from the maximum-x edge
        `offset_y` - The offset from the minimum-y edge
      Returns:
        An aligned area

    - #### alignMaxYMinX

          public static AreaBI alignMaxYMinX​(AreaBI outer,
                                             AreaBI inner)

      Equivalent to calling `alignMaxYMinXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignMaxYMinXOffset

          public static AreaBI alignMaxYMinXOffset​(AreaBI outer,
                                                   AreaBI inner,
                                                   java.math.BigInteger offset_x,
                                                   java.math.BigInteger offset_y)

      Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset_x` - The offset from the minimum-x edge
        `offset_y` - The offset from the maximum-y edge
      Returns:
        An aligned area

    - #### alignMaxYMaxX

          public static AreaBI alignMaxYMaxX​(AreaBI outer,
                                             AreaBI inner)

      Equivalent to calling `alignMaxYMaxXOffset(AreaBI, AreaBI, java.math.BigInteger, java.math.BigInteger)` with zero offsets.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### alignMaxYMaxXOffset

          public static AreaBI alignMaxYMaxXOffset​(AreaBI outer,
                                                   AreaBI inner,
                                                   java.math.BigInteger offset_x,
                                                   java.math.BigInteger offset_y)

      Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
        `offset_x` - The offset from the maximum-x edge
        `offset_y` - The offset from the maximum-y edge
      Returns:
        An aligned area

    - #### alignCenter

          public static AreaBI alignCenter​(AreaBI outer,
                                           AreaBI inner)

      Align the area `inner` such that the center of the area is equal to the center of `outer`.
      Parameters:
        `outer` - The outer area
        `inner` - The inner area
      Returns:
        An aligned area

    - #### hollowOut

          public static AreaBI hollowOut​(AreaBI outer,
                                         java.math.BigInteger min_x_offset,
                                         java.math.BigInteger max_x_offset,
                                         java.math.BigInteger min_y_offset,
                                         java.math.BigInteger max_y_offset)

      Construct a new area that fits inside `outer` based on the given offsets from each edge.
      Parameters:
        `outer` - The containing area
        `min_x_offset` - The offset from the minimum-x edge (must be non-negative)
        `max_x_offset` - The offset from the maximum-x edge (must be non-negative)
        `min_y_offset` - The offset from the minimum-y edge (must be non-negative)
        `max_y_offset` - The offset from the maximum-y edge (must be non-negative)
      Returns:
        A new area

    - #### hollowOutEvenly

          public static AreaBI hollowOutEvenly​(AreaBI outer,
                                               java.math.BigInteger offset)

      Equivalent to calling `hollowOut(AreaBI, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)` with `offset` for all offset parameters.
      Parameters:
        `outer` - The containing area
        `offset` - The offset from each edge (must be non-negative)
      Returns:
        A new area

    - #### setSizeFromCenter

          public static AreaBI setSizeFromCenter​(AreaBI area,
                                                 java.math.BigInteger sizeX,
                                                 java.math.BigInteger sizeY)

      Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

      The area is resized from its own center.

      Parameters:
        `area` - The area
        `sizeX` - The new sizeX (must be non-negative)
        `sizeY` - The new sizeY (must be non-negative)
      Returns:
        A resized area

    - #### setSizeFromMinYMinX

          public static AreaBI setSizeFromMinYMinX​(AreaBI area,
                                                   java.math.BigInteger sizeX,
                                                   java.math.BigInteger sizeY)

      Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

      The area is resized by moving its minimum-y-minimum-x corner.

      Parameters:
        `area` - The area
        `sizeX` - The new sizeX (must be non-negative)
        `sizeY` - The new sizeY (must be non-negative)
      Returns:
        A resized area

    - #### setSizeFromMinYMaxX

          public static AreaBI setSizeFromMinYMaxX​(AreaBI area,
                                                   java.math.BigInteger sizeX,
                                                   java.math.BigInteger sizeY)

      Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

      The area is resized by moving its minimum-y-maximum-x corner.

      Parameters:
        `area` - The area
        `sizeX` - The new sizeX (must be non-negative)
        `sizeY` - The new sizeY (must be non-negative)
      Returns:
        A resized area

    - #### setSizeFromMaxYMaxX

          public static AreaBI setSizeFromMaxYMaxX​(AreaBI area,
                                                   java.math.BigInteger sizeX,
                                                   java.math.BigInteger sizeY)

      Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

      The area is resized by moving its maximum-y-maximum-x corner.

      Parameters:
        `area` - The area
        `sizeX` - The new sizeX (must be non-negative)
        `sizeY` - The new sizeY (must be non-negative)
      Returns:
        A resized area

    - #### setSizeFromMaxYMinX

          public static AreaBI setSizeFromMaxYMinX​(AreaBI area,
                                                   java.math.BigInteger sizeX,
                                                   java.math.BigInteger sizeY)

      Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

      The area is resized by moving its maximum-y-minimum-x corner.

      Parameters:
        `area` - The area
        `sizeX` - The new sizeX (must be non-negative)
        `sizeY` - The new sizeY (must be non-negative)
      Returns:
        A resized area

    - #### scaleFromMinYMinX

          public static AreaBI scaleFromMinYMinX​(AreaBI area,
                                                 java.math.BigInteger x_diff,
                                                 java.math.BigInteger y_diff)

      Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY. The size of the resulting area is clamped so that its sizeX and sizeY are always non-negative.

      The area is resized by moving its minimum-y-minimum-x corner.

      Parameters:
        `area` - The area
        `x_diff` - The X difference
        `y_diff` - The Y difference
      Returns:
        A resized area

    - #### scaleFromMinYMaxX

          public static AreaBI scaleFromMinYMaxX​(AreaBI area,
                                                 java.math.BigInteger x_diff,
                                                 java.math.BigInteger y_diff)

      Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY. The size of the resulting area is clamped so that its sizeX and sizeY are always non-negative.

      The area is resized by moving its minimum-y-maximum-x corner.

      Parameters:
        `area` - The area
        `x_diff` - The X difference
        `y_diff` - The Y difference
      Returns:
        A resized area

    - #### scaleFromMaxYMinX

          public static AreaBI scaleFromMaxYMinX​(AreaBI area,
                                                 java.math.BigInteger x_diff,
                                                 java.math.BigInteger y_diff)

      Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY. The size of the resulting area is clamped so that its sizeX and sizeY are always non-negative.

      The area is resized by moving its maximum-y-minimum-x corner.

      Parameters:
        `area` - The area
        `x_diff` - The X difference
        `y_diff` - The Y difference
      Returns:
        A resized area

    - #### scaleFromMaxYMaxX

          public static AreaBI scaleFromMaxYMaxX​(AreaBI area,
                                                 java.math.BigInteger x_diff,
                                                 java.math.BigInteger y_diff)

      Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY. The size of the resulting area is clamped so that its sizeX and sizeY are always non-negative.

      The area is resized by moving its maximum-y-maximum-x corner.

      Parameters:
        `area` - The area
        `x_diff` - The X difference
        `y_diff` - The Y difference
      Returns:
        A resized area

    - #### scaleFromCenter

          public static AreaBI scaleFromCenter​(AreaBI area,
                                               java.math.BigInteger x_diff,
                                               java.math.BigInteger y_diff)

      Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY. The size of the resulting area is clamped so that its sizeX and sizeY are always non-negative.

      The area is resized from its own center.

      Parameters:
        `area` - The area
        `x_diff` - The X difference
        `y_diff` - The Y difference
      Returns:
        A resized area

    - #### overlaps

          public static boolean overlaps​(AreaBI a,
                                         AreaBI b)

      Determine whether or not two areas overlap.

      Overlapping is reflexive: `overlaps(a, a) == true`.

      Overlapping is symmetric: `overlaps(a, b) == overlaps(b, a)`.

      Overlapping is not necessarily transitive.

      Parameters:
        `a` - An area
        `b` - An area
      Returns:
        `true` iff `a` overlaps `b`

    - #### couldFitInside

          public static boolean couldFitInside​(AreaBI a,
                                               AreaBI b)

      Determine whether or not one area could fit inside another.

      Fitting is reflexive: `couldFitInside(a, a) == true`.

      Fitting is transitive: `couldFitInside(a, b) \u2192 couldFitInside(b, c) \u2192 couldFitInside(a, c)`.

      Fitting is not necessarily symmetric.

      Parameters:
        `a` - An area
        `b` - An area
      Returns:
        `true` iff `a` could fit inside `b`

    - #### containing

          public static AreaBI containing​(AreaBI a,
                                          AreaBI b)

      Construct a area that will contain both `a` and `b`.
      Parameters:
        `a` - An area
        `b` - An area
      Returns:
        An area containing `a` and `b`

    - #### containsPoint

          public static boolean containsPoint​(AreaBI a,
                                              java.math.BigInteger x,
                                              java.math.BigInteger y)

      Determine whether or not a area contains a given point.

      Parameters:
        `a` - An area
        `x` - The X coordinate of the point
        `y` - The Y coordinate of the point
      Returns:
        `true` iff `a` contains `(x, y)`

    - #### fitBetweenHorizontal

          @Deprecated
          public static AreaBI fitBetweenHorizontal​(AreaBI fit,
                                                    AreaBI a,
                                                    AreaBI b)

      Deprecated. Use `fitBetweenOnX(AreaBI, AreaBI, AreaBI)`
      Attempt to fit `fit` between `a` and `b`, horizontally.
      Parameters:
        `fit` - The area to be fitted
        `a` - An area
        `b` - An area
      Returns:
        A fitted area

    - #### fitBetweenVertical

          @Deprecated
          public static AreaBI fitBetweenVertical​(AreaBI fit,
                                                  AreaBI a,
                                                  AreaBI b)

      Deprecated. Use `fitBetweenOnY(AreaBI, AreaBI, AreaBI)`
      Attempt to fit `fit` between `a` and `b`, vertically.
      Parameters:
        `fit` - The area to be fitted
        `a` - An area
        `b` - An area
      Returns:
        A fitted area

    - #### fitBetweenOnX

          public static AreaBI fitBetweenOnX​(AreaBI fit,
                                             AreaBI a,
                                             AreaBI b)

      Attempt to fit `fit` between `a` and `b`, horizontally.
      Parameters:
        `fit` - The area to be fitted
        `a` - An area
        `b` - An area
      Returns:
        A fitted area

    - #### fitBetweenOnY

          public static AreaBI fitBetweenOnY​(AreaBI fit,
                                             AreaBI a,
                                             AreaBI b)

      Attempt to fit `fit` between `a` and `b`, vertically.
      Parameters:
        `fit` - The area to be fitted
        `a` - An area
        `b` - An area
      Returns:
        A fitted area

    - #### splitAlongParallelToX

          public static AreaXSplitBI<AreaBI> splitAlongParallelToX​(AreaBI area,
                                                                   java.math.BigInteger y)

      Split `area` along a line parallel to the X axis placed at `y` units from its own minimum-y edge.
      Parameters:
        `area` - The area to be split
        `y` - The relative Y coordinate of the splitting edge
      Returns:
        A pair of areas

    - #### splitAlongParallelToY

          public static AreaYSplitBI<AreaBI> splitAlongParallelToY​(AreaBI area,
                                                                   java.math.BigInteger x)

      Split `area` along a line parallel to the Y axis placed at `x` units from its own minimum-x edge.
      Parameters:
        `area` - The area to be split
        `x` - The relative X coordinate of the splitting edge
      Returns:
        A pair of areas

    - #### splitAlongXY

          public static AreaXYSplitBI<AreaBI> splitAlongXY​(AreaBI area,
                                                           java.math.BigInteger x,
                                                           java.math.BigInteger y)

      Split `area` along a two axis-aligned perpendicular lines that intercept at `(x, y)`.
      Parameters:
        `area` - The area to be split
        `x` - The relative X coordinate of the splitting edge
        `y` - The relative Y coordinate of the splitting edge
      Returns:
        The four resulting quadrants
      Since:
        1.1.0

    - #### show

          public static java.lang.String show​(AreaBI area)

      Parameters:
        `area` - The area
      Returns:
        A terse string describing the position and size of the area

    - #### size

          public static AreaSizeBI size​(AreaBI area)

      Parameters:
        `area` - The area
      Returns:
        The size of the area

    - #### showToBuilder

          public static java.lang.String showToBuilder​(AreaBI area,
                                                       java.lang.StringBuilder sb)

      Parameters:
        `area` - The area
        `sb` - A string builder
      Returns:
        A terse string describing the position and size of the area

Copyright © 2017 <code@io7m.com> http://io7m.com