Module org.apache.lucene.spatial3d
Package org.apache.lucene.spatial3d.geom
Class GeoComplexPolygon.SectorLinearCrossingEdgeIterator
- java.lang.Object
-
- org.apache.lucene.spatial3d.geom.GeoComplexPolygon.SectorLinearCrossingEdgeIterator
-
- All Implemented Interfaces:
GeoComplexPolygon.CountingEdgeIterator
,GeoComplexPolygon.EdgeIterator
- Enclosing class:
- GeoComplexPolygon
private class GeoComplexPolygon.SectorLinearCrossingEdgeIterator extends java.lang.Object implements GeoComplexPolygon.CountingEdgeIterator
Count the number of verifiable edge crossings for less than 1/2 a world.
-
-
Field Summary
Fields Modifier and Type Field Description private int
aboveCrossingCount
private Plane
abovePlane
private int
belowCrossingCount
private Plane
belowPlane
private Membership
bound1
private Membership
bound2
private boolean
onEdge
private Plane
plane
private double
thePointX
private double
thePointY
private double
thePointZ
-
Constructor Summary
Constructors Constructor Description SectorLinearCrossingEdgeIterator(GeoPoint testPoint, Plane plane, Plane abovePlane, Plane belowPlane, double thePointX, double thePointY, double thePointZ)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private int
countCrossings(GeoComplexPolygon.Edge edge, Plane envelopePlane, Membership envelopeBound1, Membership envelopeBound2)
Find the intersections with an envelope plane, and assess those intersections for whether they truly describe crossings.private boolean
edgeCrossesEnvelope(Plane edgePlane, GeoPoint intersectionPoint, Plane envelopePlane)
int
getCrossingCount()
boolean
isOnEdge()
boolean
matches(GeoComplexPolygon.Edge edge)
-
-
-
Field Detail
-
plane
private final Plane plane
-
abovePlane
private final Plane abovePlane
-
belowPlane
private final Plane belowPlane
-
bound1
private final Membership bound1
-
bound2
private final Membership bound2
-
thePointX
private final double thePointX
-
thePointY
private final double thePointY
-
thePointZ
private final double thePointZ
-
onEdge
private boolean onEdge
-
aboveCrossingCount
private int aboveCrossingCount
-
belowCrossingCount
private int belowCrossingCount
-
-
Method Detail
-
getCrossingCount
public int getCrossingCount()
- Specified by:
getCrossingCount
in interfaceGeoComplexPolygon.CountingEdgeIterator
- Returns:
- the number of edges that were crossed.
-
isOnEdge
public boolean isOnEdge()
- Specified by:
isOnEdge
in interfaceGeoComplexPolygon.CountingEdgeIterator
- Returns:
- true if the endpoint was on an edge.
-
matches
public boolean matches(GeoComplexPolygon.Edge edge)
- Specified by:
matches
in interfaceGeoComplexPolygon.EdgeIterator
- Parameters:
edge
- is the edge that matched.- Returns:
- true if the iteration should continue, false otherwise.
-
countCrossings
private int countCrossings(GeoComplexPolygon.Edge edge, Plane envelopePlane, Membership envelopeBound1, Membership envelopeBound2)
Find the intersections with an envelope plane, and assess those intersections for whether they truly describe crossings.
-
-