Module org.apache.lucene.spatial3d
Package org.apache.lucene.spatial3d.geom
Class GeoDegeneratePath.PathSegment
java.lang.Object
org.apache.lucene.spatial3d.geom.BasePlanetObject
org.apache.lucene.spatial3d.geom.GeoBaseBounds
org.apache.lucene.spatial3d.geom.GeoDegeneratePath.PathSegment
- All Implemented Interfaces:
Bounded,GeoBounds,Membership,PlanetObject,SerializableObject
- Enclosing class:
GeoDegeneratePath
This is the pre-calculated data for a path segment.
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal GeoPoint[]Notable points for the connecting planefinal GeoPointEnd point of the segmentfinal SidedPlanePlane going through the center and end point, marking the end edge of the segmentfinal Map<DistanceStyle, Double> Place to keep any complete segment distances we've calculated so farfinal PlaneNormalized plane connecting the two points and going through world centerfinal GeoPointStarting point of the segmentfinal SidedPlanePlane going through the center and start point, marking the start edge of the segmentFields inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
planetModel -
Constructor Summary
ConstructorsConstructorDescriptionPathSegment(PlanetModel planetModel, GeoPoint start, GeoPoint end, Plane normalizedConnectingPlane) Construct a path segment. -
Method Summary
Modifier and TypeMethodDescriptiondoublefullPathDistance(DistanceStyle distanceStyle) Compute the full distance along this path segment.voidGet the bounds for a segment endpoint.booleanintersects(GeoShape geoShape) Determine if this endpoint intersects a specified GeoShape.booleanintersects(Plane p, GeoPoint[] notablePoints, Membership[] bounds) Determine if this endpoint intersects a specified plane.booleanisWithin(double x, double y, double z) Check if point is within this segment.booleanisWithinSection(double x, double y, double z) doublenearestPathDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute nearest path distance (distance from start of segment to center line point adjacent).doubleoutsideDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute external distance.doublepathCenterDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute path center distance (distance from path to current point).doublepathDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute interior path distance.toString()Methods inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
equals, getPlanetModel, hashCode, writeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.lucene.spatial3d.geom.Membership
isWithinMethods inherited from interface org.apache.lucene.spatial3d.geom.PlanetObject
getPlanetModelMethods inherited from interface org.apache.lucene.spatial3d.geom.SerializableObject
write
-
Field Details
-
start
Starting point of the segment -
end
End point of the segment -
fullDistanceCache
Place to keep any complete segment distances we've calculated so far -
normalizedConnectingPlane
Normalized plane connecting the two points and going through world center -
startCutoffPlane
Plane going through the center and start point, marking the start edge of the segment -
endCutoffPlane
Plane going through the center and end point, marking the end edge of the segment -
connectingPlanePoints
Notable points for the connecting plane
-
-
Constructor Details
-
PathSegment
public PathSegment(PlanetModel planetModel, GeoPoint start, GeoPoint end, Plane normalizedConnectingPlane) 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.
-
-
Method Details
-
fullPathDistance
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.
-
isWithinSection
public boolean isWithinSection(double x, double y, double z) -
pathCenterDistance
Compute path center distance (distance from path to current point).- 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 Double.POSITIVE_INFINITY if outside this segment
-
nearestPathDistance
Compute nearest path distance (distance from start of segment to center line point adjacent).- 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, or Double.POSITIVE_INFINITY if outside this segment
-
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.
-
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:
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 specified GeoShape.- Parameters:
geoShape- is the GeoShape.- Returns:
- true if there GeoShape intersects this endpoint.
-
getBounds
Get the bounds for a segment endpoint.- Specified by:
getBoundsin interfaceBounded- Overrides:
getBoundsin classGeoBaseBounds- Parameters:
bounds- are the bounds to be modified.
-
toString
-