Class GeoStandardPath.PathSegment

java.lang.Object
org.apache.lucene.spatial3d.geom.GeoStandardPath.PathSegment
Enclosing class:
GeoStandardPath

private static class GeoStandardPath.PathSegment extends Object
This is the pre-calculated data for a path segment.
  • Field Details

    • start

      public final GeoPoint start
      Starting point of the segment
    • end

      public final GeoPoint end
      End point of the segment
    • fullDistanceCache

      public final Map<DistanceStyle,Double> fullDistanceCache
      Place to keep any complete segment distances we've calculated so far
    • normalizedConnectingPlane

      public final Plane normalizedConnectingPlane
      Normalized plane connecting the two points and going through world center
    • upperConnectingPlane

      public final SidedPlane upperConnectingPlane
      Cutoff plane parallel to connecting plane representing one side of the path segment
    • lowerConnectingPlane

      public final SidedPlane lowerConnectingPlane
      Cutoff plane parallel to connecting plane representing the other side of the path segment
    • startCutoffPlane

      public final SidedPlane startCutoffPlane
      Plane going through the center and start point, marking the start edge of the segment
    • endCutoffPlane

      public final SidedPlane endCutoffPlane
      Plane going through the center and end point, marking the end edge of the segment
    • URHC

      public final GeoPoint URHC
      Upper right hand corner of segment
    • LRHC

      public final GeoPoint LRHC
      Lower right hand corner of segment
    • ULHC

      public final GeoPoint ULHC
      Upper left hand corner of segment
    • LLHC

      public final GeoPoint LLHC
      Lower left hand corner of segment
    • upperConnectingPlanePoints

      public final GeoPoint[] upperConnectingPlanePoints
      Notable points for the upper connecting plane
    • lowerConnectingPlanePoints

      public final GeoPoint[] lowerConnectingPlanePoints
      Notable points for the lower connecting plane
  • Constructor Details

    • PathSegment

      public PathSegment(PlanetModel planetModel, GeoPoint start, GeoPoint end, Plane normalizedConnectingPlane, double planeBoundingOffset)
      Construct a path segment.
      Parameters:
      planetModel - is the planet model.
      start - is the starting point.
      end - is the ending point.
      normalizedConnectingPlane - is the connecting plane.
      planeBoundingOffset - is the linear offset from the connecting plane to either side.
  • Method Details

    • fullPathDistance

      public double fullPathDistance(DistanceStyle distanceStyle)
      Compute the full distance along this path segment.
      Parameters:
      distanceStyle - is the distance style.
      Returns:
      the distance metric, in aggregation form.
    • isWithin

      public boolean isWithin(double x, double y, double z)
      Check if point is within this segment.
      Parameters:
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      true of within.
    • pathCenterDistance

      public double pathCenterDistance(PlanetModel planetModel, DistanceStyle distanceStyle, double x, double y, double z)
      Compute path center distance.
      Parameters:
      planetModel - is the planet model.
      distanceStyle - is the distance style.
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      the distance metric, or Double.POSITIVE_INFINITY if outside this segment
    • nearestPathDistance

      public double nearestPathDistance(PlanetModel planetModel, DistanceStyle distanceStyle, double x, double y, double z)
      Compute nearest path distance.
      Parameters:
      planetModel - is the planet model.
      distanceStyle - is the distance style.
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      the distance metric, in aggregation form, or Double.POSITIVE_INFINITY if outside this segment
    • pathDeltaDistance

      public double pathDeltaDistance(PlanetModel planetModel, DistanceStyle distanceStyle, double x, double y, double z)
      Compute delta path distance.
      Parameters:
      planetModel - is the planet model.
      distanceStyle - is the distance style.
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      the distance metric, in aggregation form, or Double.POSITIVE_INFINITY if outside the segment.
    • pathDistance

      public double pathDistance(PlanetModel planetModel, DistanceStyle distanceStyle, double x, double y, double z)
      Compute interior path distance.
      Parameters:
      planetModel - is the planet model.
      distanceStyle - is the distance style.
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      the distance metric, in aggregation form.
    • outsideDistance

      public double outsideDistance(PlanetModel planetModel, DistanceStyle distanceStyle, double x, double y, double z)
      Compute external distance.
      Parameters:
      planetModel - is the planet model.
      distanceStyle - is the distance style.
      x - is the point x.
      y - is the point y.
      z - is the point z.
      Returns:
      the distance metric.
    • intersects

      public boolean intersects(PlanetModel planetModel, Plane p, GeoPoint[] notablePoints, Membership[] bounds)
      Determine if this endpoint intersects a specified plane.
      Parameters:
      planetModel - is the planet model.
      p - is the plane.
      notablePoints - are the points associated with the plane.
      bounds - are any bounds which the intersection must lie within.
      Returns:
      true if there is a matching intersection.
    • intersects

      public boolean intersects(GeoShape geoShape)
      Determine if this endpoint intersects a specified GeoShape.
      Parameters:
      geoShape - is the GeoShape.
      Returns:
      true if there GeoShape intersects this endpoint.
    • getBounds

      public void getBounds(PlanetModel planetModel, Bounds bounds)
      Get the bounds for a segment endpoint.
      Parameters:
      planetModel - is the planet model.
      bounds - are the bounds to be modified.