Module org.apache.lucene.spatial3d
Package org.apache.lucene.spatial3d.geom
Class GeoStandardPath.CutoffDualCircleSegmentEndpoint
java.lang.Object
org.apache.lucene.spatial3d.geom.BasePlanetObject
org.apache.lucene.spatial3d.geom.GeoBaseBounds
org.apache.lucene.spatial3d.geom.GeoStandardPath.BaseSegmentEndpoint
org.apache.lucene.spatial3d.geom.GeoStandardPath.CutoffDualCircleSegmentEndpoint
- All Implemented Interfaces:
Bounded,GeoBounds,GeoStandardPath.PathComponent,GeoStandardPath.SegmentEndpoint,Membership,PlanetObject,SerializableObject
- Enclosing class:
GeoStandardPath
private static class GeoStandardPath.CutoffDualCircleSegmentEndpoint
extends GeoStandardPath.BaseSegmentEndpoint
Endpoint that's a dual circle with cutoff(s). This SegmentEndpoint is used when we have two
adjoining segments. (1) We construct two circles. Each circle uses the two segment endpoints
for one of the two segments, plus the one segment endpoint that is on the other side of the
segment's cutoff plane. (2) isWithin() is computed using both circles, using just the portion
that is within both segments' cutoff planes. If either matches, the point is included. (3)
intersects() is computed using both circles, with similar cutoffs. (4) bounds() uses both
circles too.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SidedPlaneprotected final SidedPlaneprotected final SidedPlaneFirst circleprotected final SidedPlaneSecond circleprotected final Membership[]Both cutoff planes are included hereprotected final GeoPoint[]Notable points for first circleprotected final GeoPoint[]Notable points for second circleFields inherited from class org.apache.lucene.spatial3d.geom.GeoStandardPath.BaseSegmentEndpoint
NO_MEMBERSHIP, point, previousFields inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
planetModel -
Constructor Summary
ConstructorsConstructorDescriptionCutoffDualCircleSegmentEndpoint(PlanetModel planetModel, GeoStandardPath.PathComponent previous, GeoPoint point, SidedPlane prevCutoffPlane, SidedPlane nextCutoffPlane, GeoPoint prevURHC, GeoPoint prevLRHC, GeoPoint currentULHC, GeoPoint currentLLHC) -
Method Summary
Modifier and TypeMethodDescriptionvoidCompute bounds for the shape.booleanintersects(GeoShape geoShape) Determine if this endpoint intersects a GeoShape.booleanintersects(Plane p, XYZBounds planeBounds, 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 endpoint.booleanCheck if point is within this endpoint.booleanisWithinSection(double x, double y, double z) Check if point is within this section (within cutoff planes).booleanisWithinSection(Vector point) Check if point is within this section (within cutoff planes).doublenearestPathDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute nearest path distance (distance from start of segment to point adjacent the one specitied, if reachable by this segment).doublepathCenterDistance(DistanceStyle distanceStyle, double x, double y, double z) Compute path center distance (distance from the point to center of the path, if reachable by this segment).toString()Methods inherited from class org.apache.lucene.spatial3d.geom.GeoStandardPath.BaseSegmentEndpoint
distance, equals, fullPathDistance, getStartingDistance, hashCode, nearestDistance, outsideDistance, pathDeltaDistance, pathDistanceMethods inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
getPlanetModel, writeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.lucene.spatial3d.geom.PlanetObject
getPlanetModelMethods inherited from interface org.apache.lucene.spatial3d.geom.SerializableObject
write
-
Field Details
-
circlePlane1
First circle -
circlePlane2
Second circle -
notablePoints1
Notable points for first circle -
notablePoints2
Notable points for second circle -
cutoffPlanes
Both cutoff planes are included here -
boundaryPlane1
-
boundaryPlane2
-
-
Constructor Details
-
CutoffDualCircleSegmentEndpoint
public CutoffDualCircleSegmentEndpoint(PlanetModel planetModel, GeoStandardPath.PathComponent previous, GeoPoint point, SidedPlane prevCutoffPlane, SidedPlane nextCutoffPlane, GeoPoint prevURHC, GeoPoint prevLRHC, GeoPoint currentULHC, GeoPoint currentLLHC)
-
-
Method Details
-
isWithin
Description copied from interface:GeoStandardPath.PathComponentCheck if point is within this endpoint.- Specified by:
isWithinin interfaceGeoStandardPath.PathComponent- Specified by:
isWithinin interfaceMembership- Overrides:
isWithinin classGeoStandardPath.BaseSegmentEndpoint- Parameters:
point- is the point.- Returns:
- true of within.
-
isWithin
public boolean isWithin(double x, double y, double z) Description copied from interface:GeoStandardPath.PathComponentCheck if point is within this endpoint.- Specified by:
isWithinin interfaceGeoStandardPath.PathComponent- Specified by:
isWithinin interfaceMembership- Overrides:
isWithinin classGeoStandardPath.BaseSegmentEndpoint- Parameters:
x- is the point x.y- is the point y.z- is the point z.- Returns:
- true of within.
-
isWithinSection
Description copied from interface:GeoStandardPath.PathComponentCheck if point is within this section (within cutoff planes).- Specified by:
isWithinSectionin interfaceGeoStandardPath.PathComponent- Overrides:
isWithinSectionin classGeoStandardPath.BaseSegmentEndpoint
-
isWithinSection
public boolean isWithinSection(double x, double y, double z) Description copied from interface:GeoStandardPath.PathComponentCheck if point is within this section (within cutoff planes).- Specified by:
isWithinSectionin interfaceGeoStandardPath.PathComponent- Overrides:
isWithinSectionin classGeoStandardPath.BaseSegmentEndpoint
-
intersects
public boolean intersects(Plane p, XYZBounds planeBounds, GeoPoint[] notablePoints, Membership[] bounds) Description copied from interface:GeoStandardPath.PathComponentDetermine if this endpoint intersects a specified plane.- Specified by:
intersectsin interfaceGeoStandardPath.PathComponent- Overrides:
intersectsin classGeoStandardPath.BaseSegmentEndpoint- Parameters:
p- is the plane.planeBounds- are the XYZBounds of the plane we're looking for an intersection with.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
Description copied from interface:GeoStandardPath.PathComponentDetermine if this endpoint intersects a GeoShape.- Specified by:
intersectsin interfaceGeoStandardPath.PathComponent- Overrides:
intersectsin classGeoStandardPath.BaseSegmentEndpoint- Parameters:
geoShape- is the GeoShape.- Returns:
- true if there is shape intersect this endpoint.
-
nearestPathDistance
Description copied from interface:GeoStandardPath.PathComponentCompute nearest path distance (distance from start of segment to point adjacent the one specitied, if reachable by this segment).- Specified by:
nearestPathDistancein interfaceGeoStandardPath.PathComponent- Overrides:
nearestPathDistancein classGeoStandardPath.BaseSegmentEndpoint- 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.
-
pathCenterDistance
Description copied from interface:GeoStandardPath.PathComponentCompute path center distance (distance from the point to center of the path, if reachable by this segment).- Specified by:
pathCenterDistancein interfaceGeoStandardPath.PathComponent- Overrides:
pathCenterDistancein classGeoStandardPath.BaseSegmentEndpoint- 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 path segment.
-
getBounds
Description copied from interface:BoundedCompute bounds for the shape.- Specified by:
getBoundsin interfaceBounded- Specified by:
getBoundsin interfaceGeoStandardPath.PathComponent- Overrides:
getBoundsin classGeoStandardPath.BaseSegmentEndpoint- Parameters:
bounds- is the input bounds object. The input object will be modified.
-
toString
- Overrides:
toStringin classGeoStandardPath.BaseSegmentEndpoint
-