Package org.apache.lucene.spatial3d.geom

# Class XYZBounds

java.lang.Object
org.apache.lucene.spatial3d.geom.XYZBounds

All Implemented Interfaces:
  `Bounds`

public class XYZBounds extends Object implements Bounds
An object for accumulating XYZ bounds information.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XYZBounds()`
  Construct an empty bounds object

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addBounds(XYZBounds bounds)`
  Add a fully-formed XYZBounds to the current one.
  `Bounds`
  `addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)`
  Add a horizontal plane to the bounds description.
  `Bounds`
  `addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)`
  Add the intersection between two planes to the bounds description.
  `Bounds`
  `addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)`
  Add a general plane to the bounds description.
  `Bounds`
  `addPoint(GeoPoint point)`
  Add a single point.
  `Bounds`
  `addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)`
  Add a vertical plane to the bounds description.
  `Bounds`
  `addXValue(double x)`
  Add a specific X value.
  `Bounds`
  `addXValue(GeoPoint point)`
  Add an X value.
  `Bounds`
  `addYValue(double y)`
  Add a specific Y value.
  `Bounds`
  `addYValue(GeoPoint point)`
  Add a Y value.
  `Bounds`
  `addZValue(double z)`
  Add a specific Z value.
  `Bounds`
  `addZValue(GeoPoint point)`
  Add a Z value.
  `Double`
  `getMaximumX()`
  Return the maximum X value.
  `Double`
  `getMaximumY()`
  Return the maximum Y value.
  `Double`
  `getMaximumZ()`
  Return the maximum Z value.
  `Double`
  `getMinimumX()`
  Return the minimum X value.
  `Double`
  `getMinimumY()`
  Return the minimum Y value.
  `Double`
  `getMinimumZ()`
  Return the minimum Z value.
  `boolean`
  `isLargestMaxX(PlanetModel planetModel)`
  Return true if maxX is as large as the planet model allows.
  `boolean`
  `isLargestMaxY(PlanetModel planetModel)`
  Return true if maxY is as large as the planet model allows.
  `boolean`
  `isLargestMaxZ(PlanetModel planetModel)`
  Return true if maxZ is as large as the planet model allows.
  `boolean`
  `isSmallestMinX(PlanetModel planetModel)`
  Return true if minX is as small as the planet model allows.
  `boolean`
  `isSmallestMinY(PlanetModel planetModel)`
  Return true if minY is as small as the planet model allows.
  `boolean`
  `isSmallestMinZ(PlanetModel planetModel)`
  Return true if minZ is as small as the planet model allows.
  `Bounds`
  `isWide()`
  Signal that the shape exceeds Math.PI in longitude.
  `boolean`
  `isWithin(double x, double y, double z)`
  Courtesy method to see if a point is within the bounds.
  `boolean`
  `isWithin(Vector v)`
  Courtesy method to see if a point is within the bounds.
  `Bounds`
  `noBottomLatitudeBound()`
  Signal that there is no bottom latitude bound.
  `Bounds`
  `noBound(PlanetModel planetModel)`
  Signal that there is no bound whatsoever.
  `Bounds`
  `noLongitudeBound()`
  Signal that there is no longitude bound.
  `Bounds`
  `noTopLatitudeBound()`
  Signal that there is no top latitude bound.
  `boolean`
  `overlaps(XYZBounds bounds)`
  Check if another XYZBounds object overlaps this one.
  `String`
  `toString()`

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

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

- ## Constructor Details

  - ### XYZBounds

    public XYZBounds()
    Construct an empty bounds object

- ## Method Details

  - ### getMinimumX

    public Double getMinimumX()
    Return the minimum X value.
    Returns:
      minimum X value.

  - ### getMaximumX

    public Double getMaximumX()
    Return the maximum X value.
    Returns:
      maximum X value.

  - ### getMinimumY

    public Double getMinimumY()
    Return the minimum Y value.
    Returns:
      minimum Y value.

  - ### getMaximumY

    public Double getMaximumY()
    Return the maximum Y value.
    Returns:
      maximum Y value.

  - ### getMinimumZ

    public Double getMinimumZ()
    Return the minimum Z value.
    Returns:
      minimum Z value.

  - ### getMaximumZ

    public Double getMaximumZ()
    Return the maximum Z value.
    Returns:
      maximum Z value.

  - ### isSmallestMinX

    public boolean isSmallestMinX(PlanetModel planetModel)
    Return true if minX is as small as the planet model allows.
    Returns:
      true if minX has reached its bound.

  - ### isLargestMaxX

    public boolean isLargestMaxX(PlanetModel planetModel)
    Return true if maxX is as large as the planet model allows.
    Returns:
      true if maxX has reached its bound.

  - ### isSmallestMinY

    public boolean isSmallestMinY(PlanetModel planetModel)
    Return true if minY is as small as the planet model allows.
    Returns:
      true if minY has reached its bound.

  - ### isLargestMaxY

    public boolean isLargestMaxY(PlanetModel planetModel)
    Return true if maxY is as large as the planet model allows.
    Returns:
      true if maxY has reached its bound.

  - ### isSmallestMinZ

    public boolean isSmallestMinZ(PlanetModel planetModel)
    Return true if minZ is as small as the planet model allows.
    Returns:
      true if minZ has reached its bound.

  - ### isLargestMaxZ

    public boolean isLargestMaxZ(PlanetModel planetModel)
    Return true if maxZ is as large as the planet model allows.
    Returns:
      true if maxZ has reached its bound.

  - ### overlaps

    public boolean overlaps(XYZBounds bounds)
    Check if another XYZBounds object overlaps this one.
    Parameters:
      `bounds` - is the other bounds object.
    Returns:
      true if there is overlap.

  - ### addBounds

    public void addBounds(XYZBounds bounds)
    Add a fully-formed XYZBounds to the current one.
    Parameters:
      `bounds` - is the bounds object to modify

  - ### addPlane

    public Bounds addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)
    Description copied from interface: `Bounds`
    Add a general plane to the bounds description.
    Specified by:
      `addPlane` in interface `Bounds`
    Parameters:
      `planetModel` - is the planet model.
      `plane` - is the plane.
      `bounds` - are the membership bounds for points along the arc.

  - ### addHorizontalPlane

    public Bounds addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)
    Add a horizontal plane to the bounds description. This method should EITHER use the supplied latitude, OR use the supplied plane, depending on what is most efficient.
    Specified by:
      `addHorizontalPlane` in interface `Bounds`
    Parameters:
      `planetModel` - is the planet model.
      `latitude` - is the latitude.
      `horizontalPlane` - is the plane.
      `bounds` - are the constraints on the plane.
    Returns:
      updated Bounds object.

  - ### addVerticalPlane

    public Bounds addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)
    Add a vertical plane to the bounds description. This method should EITHER use the supplied longitude, OR use the supplied plane, depending on what is most efficient.
    Specified by:
      `addVerticalPlane` in interface `Bounds`
    Parameters:
      `planetModel` - is the planet model.
      `longitude` - is the longitude.
      `verticalPlane` - is the plane.
      `bounds` - are the constraints on the plane.
    Returns:
      updated Bounds object.

  - ### addXValue

    public Bounds addXValue(GeoPoint point)
    Description copied from interface: `Bounds`
    Add an X value.
    Specified by:
      `addXValue` in interface `Bounds`
    Parameters:
      `point` - is the point to take the x value from.
    Returns:
      the updated object.

  - ### addXValue

    public Bounds addXValue(double x)
    Add a specific X value.
    Parameters:
      `x` - is the value to add.
    Returns:
      the bounds object.

  - ### addYValue

    public Bounds addYValue(GeoPoint point)
    Description copied from interface: `Bounds`
    Add a Y value.
    Specified by:
      `addYValue` in interface `Bounds`
    Parameters:
      `point` - is the point to take the y value from.
    Returns:
      the updated object.

  - ### addYValue

    public Bounds addYValue(double y)
    Add a specific Y value.
    Parameters:
      `y` - is the value to add.
    Returns:
      the bounds object.

  - ### addZValue

    public Bounds addZValue(GeoPoint point)
    Description copied from interface: `Bounds`
    Add a Z value.
    Specified by:
      `addZValue` in interface `Bounds`
    Parameters:
      `point` - is the point to take the z value from.
    Returns:
      the updated object.

  - ### addZValue

    public Bounds addZValue(double z)
    Add a specific Z value.
    Parameters:
      `z` - is the value to add.
    Returns:
      the bounds object.

  - ### addIntersection

    public Bounds addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)
    Description copied from interface: `Bounds`
    Add the intersection between two planes to the bounds description. Where the shape has intersecting planes, it is better to use this method than just adding the point, since this method takes each plane's error envelope into account.
    Specified by:
      `addIntersection` in interface `Bounds`
    Parameters:
      `planetModel` - is the planet model.
      `plane1` - is the first plane.
      `plane2` - is the second plane.
      `bounds` - are the membership bounds for the intersection.

  - ### addPoint

    public Bounds addPoint(GeoPoint point)
    Description copied from interface: `Bounds`
    Add a single point.
    Specified by:
      `addPoint` in interface `Bounds`
    Parameters:
      `point` - is the point.
    Returns:
      the updated Bounds object.

  - ### isWide

    public Bounds isWide()
    Description copied from interface: `Bounds`
    Signal that the shape exceeds Math.PI in longitude.
    Specified by:
      `isWide` in interface `Bounds`
    Returns:
      the updated Bounds object.

  - ### noLongitudeBound

    public Bounds noLongitudeBound()
    Description copied from interface: `Bounds`
    Signal that there is no longitude bound.
    Specified by:
      `noLongitudeBound` in interface `Bounds`
    Returns:
      the updated Bounds object.

  - ### noTopLatitudeBound

    public Bounds noTopLatitudeBound()
    Description copied from interface: `Bounds`
    Signal that there is no top latitude bound.
    Specified by:
      `noTopLatitudeBound` in interface `Bounds`
    Returns:
      the updated Bounds object.

  - ### noBottomLatitudeBound

    public Bounds noBottomLatitudeBound()
    Description copied from interface: `Bounds`
    Signal that there is no bottom latitude bound.
    Specified by:
      `noBottomLatitudeBound` in interface `Bounds`
    Returns:
      the updated Bounds object.

  - ### noBound

    public Bounds noBound(PlanetModel planetModel)
    Description copied from interface: `Bounds`
    Signal that there is no bound whatsoever. The bound is limited only by the constraints of the planet.
    Specified by:
      `noBound` in interface `Bounds`
    Returns:
      the updated Bounds object.,

  - ### isWithin

    public boolean isWithin(Vector v)
    Courtesy method to see if a point is within the bounds.
    Parameters:
      `v` - is the point/vector we want to check
    Returns:
      true if the bounds contains the vector

  - ### isWithin

    public boolean isWithin(double x, double y, double z)
    Courtesy method to see if a point is within the bounds.
    Parameters:
      `x` - is the x coordinate
      `y` - is the y coordinate
      `z` - is the z coordinate
    Returns:
      true if the bounds contains the vector

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`