Package org.apache.lucene.spatial3d.geom
Interface GeoStandardPath.SegmentEndpoint
- All Known Implementing Classes:
GeoStandardPath.BaseSegmentEndpoint
,GeoStandardPath.CircleSegmentEndpoint
,GeoStandardPath.CutoffDualCircleSegmentEndpoint
,GeoStandardPath.CutoffSingleCircleSegmentEndpoint
- Enclosing class:
- GeoStandardPath
private static interface GeoStandardPath.SegmentEndpoint
Internal interface describing segment endpoint implementations. There are several different
such implementations, each corresponding to a different geometric conformation. Note well: This
is not necessarily a circle. There are four cases: (1) The path consists of a single endpoint.
In this case, we build a simple circle with the proper cutoff offset. (2) This is the end of a
path. The circle plane must be constructed to go through two supplied points and be
perpendicular to a connecting plane. (2.5) Intersection, but the path on both sides is linear.
We generate a circle, but we use the cutoff planes to limit its influence in the straight line
case. (3) This is an intersection in a path. We are supplied FOUR planes. If there are
intersections within bounds for both upper and lower, then we generate no circle at all. If
there is one intersection only, then we generate a plane that includes that intersection, as
well as the remaining cutoff plane/edge plane points.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
getBounds
(PlanetModel planetModel, Bounds bounds) Get the bounds for a segment endpoint.boolean
intersects
(GeoShape geoShape) Determine if this endpoint intersects a GeoShape.boolean
intersects
(PlanetModel planetModel, Plane p, GeoPoint[] notablePoints, Membership[] bounds) Determine if this endpoint intersects a specified plane.boolean
isWithin
(double x, double y, double z) Check if point is within this endpoint.boolean
Check if point is within this endpoint.double
nearestPathDistance
(DistanceStyle distanceStyle, double x, double y, double z) Compute nearest path distance.double
outsideDistance
(DistanceStyle distanceStyle, double x, double y, double z) Compute external distance.double
pathCenterDistance
(DistanceStyle distanceStyle, double x, double y, double z) Compute path center distance.double
pathDeltaDistance
(DistanceStyle distanceStyle, double x, double y, double z) Compute delta path distance.double
pathDistance
(DistanceStyle distanceStyle, double x, double y, double z) Compute interior path distance.
-
Method Details
-
isWithin
Check if point is within this endpoint.- Parameters:
point
- is the point.- Returns:
- true of within.
-
isWithin
boolean isWithin(double x, double y, double z) Check if point is within this endpoint.- Parameters:
x
- is the point x.y
- is the point y.z
- is the point z.- Returns:
- true of within.
-
pathDeltaDistance
Compute delta path distance.- Parameters:
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.
-
pathDistance
Compute interior path distance.- Parameters:
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.
-
nearestPathDistance
Compute nearest path distance.- Parameters:
distanceStyle
- is the distance style.x
- is the point x.y
- is the point y.z
- is the point z.- Returns:
- the distance metric (always value zero), in aggregation form, or POSITIVE_INFINITY if the point is not within the bounds of the endpoint.
-
pathCenterDistance
Compute path center distance.- Parameters:
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 POSITIVE_INFINITY if the point is not within the bounds of the endpoint.
-
outsideDistance
Compute external distance.- Parameters:
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
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
Determine if this endpoint intersects a GeoShape.- Parameters:
geoShape
- is the GeoShape.- Returns:
- true if there is shape intersect this endpoint.
-
getBounds
Get the bounds for a segment endpoint.- Parameters:
planetModel
- is the planet model.bounds
- are the bounds to be modified.
-