java.lang.Object
org.apache.lucene.spatial3d.geom.BasePlanetObject
org.apache.lucene.spatial3d.geom.BaseXYZSolid
All Implemented Interfaces:
GeoArea, Membership, PlanetObject, SerializableObject, XYZSolid
Direct Known Subclasses:
dXdYdZSolid, dXdYZSolid, dXYdZSolid, dXYZSolid, StandardXYZSolid, XdYdZSolid, XdYZSolid, XYdZSolid

abstract class BaseXYZSolid extends BasePlanetObject implements XYZSolid
Base class of a family of 3D rectangles, bounded on six sides by X,Y,Z limits
  • Field Details

    • xUnitVector

      protected static final Vector xUnitVector
      Unit vector in x
    • yUnitVector

      protected static final Vector yUnitVector
      Unit vector in y
    • zUnitVector

      protected static final Vector zUnitVector
      Unit vector in z
    • xVerticalPlane

      protected static final Plane xVerticalPlane
      Vertical plane normal to x unit vector passing through origin
    • yVerticalPlane

      protected static final Plane yVerticalPlane
      Vertical plane normal to y unit vector passing through origin
    • EMPTY_POINTS

      protected static final GeoPoint[] EMPTY_POINTS
      Empty point vector
    • ALL_INSIDE

      protected static final int ALL_INSIDE
      All edgepoints inside shape
      See Also:
    • SOME_INSIDE

      protected static final int SOME_INSIDE
      Some edgepoints inside shape
      See Also:
    • NONE_INSIDE

      protected static final int NONE_INSIDE
      No edgepoints inside shape
      See Also:
    • NO_EDGEPOINTS

      protected static final int NO_EDGEPOINTS
      No edgepoints at all (means a shape that is the whole world)
      See Also:
  • Constructor Details

    • BaseXYZSolid

      public BaseXYZSolid(PlanetModel planetModel)
      Base solid constructor.
      Parameters:
      planetModel - is the planet model.
  • Method Details

    • glueTogether

      protected static GeoPoint[] glueTogether(GeoPoint[]... pointArrays)
      Construct a single array from a number of individual arrays.
      Parameters:
      pointArrays - is the array of point arrays.
      Returns:
      the single unified array.
    • isWithin

      public boolean isWithin(Vector point)
      Description copied from interface: Membership
      Check if a point is within this shape.
      Specified by:
      isWithin in interface Membership
      Parameters:
      point - is the point to check.
      Returns:
      true if the point is within this shape
    • isWithin

      public abstract boolean isWithin(double x, double y, double z)
      Description copied from interface: Membership
      Check if a point is within this shape.
      Specified by:
      isWithin in interface Membership
      Parameters:
      x - is x coordinate of point to check.
      y - is y coordinate of point to check.
      z - is z coordinate of point to check.
      Returns:
      true if the point is within this shape
    • isShapeInsideArea

      protected int isShapeInsideArea(GeoShape path)
      Determine the relationship between this area and the provided shape's edgepoints.
      Parameters:
      path - is the shape.
      Returns:
      the relationship.
    • isAreaInsideShape

      protected int isAreaInsideShape(GeoShape path)
      Determine the relationship between a shape and this area's edgepoints.
      Parameters:
      path - is the shape.
      Returns:
      the relationship.
    • getEdgePoints

      protected abstract GeoPoint[] getEdgePoints()
      Get the edge points for this shape.
      Returns:
      the edge points.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class BasePlanetObject
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class BasePlanetObject