Package com.google.common.geometry
Class S2EdgeUtil.XYZPruner
java.lang.Object
com.google.common.geometry.S2EdgeUtil.XYZPruner
- Enclosing class:
S2EdgeUtil
The purpose of this class is to find edges that intersect a given XYZ bounding box. It can be
used as an efficient rejection test when attempting to find edges that intersect a given
region. It accepts a vertex chain v0, v1, v2, ... and returns a boolean value indicating
whether each edge intersects the specified bounding box.
We use XYZ intervals instead of something like longitude intervals because it is cheap to collect from S2Point lists and any slicing strategy should give essentially equivalent results. See S2Loop for an example of use.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private S2Point
private double
private double
private double
private double
private double
private double
private double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addEdgeToBounds
(S2Point from, S2Point to) Accumulate a bounding rectangle from provided edges.boolean
intersects
(S2Point v1) Returns true if the edge going from the last point to this point passes through the pruner bounding box, otherwise returns false.void
-
Field Details
-
lastVertex
-
boundSet
private boolean boundSet -
xmin
private double xmin -
ymin
private double ymin -
zmin
private double zmin -
xmax
private double xmax -
ymax
private double ymax -
zmax
private double zmax -
maxDeformation
private double maxDeformation
-
-
Constructor Details
-
XYZPruner
public XYZPruner()
-
-
Method Details
-
addEdgeToBounds
Accumulate a bounding rectangle from provided edges.- Parameters:
from
- start of edgeto
- end of edge.
-
setFirstIntersectPoint
-
intersects
Returns true if the edge going from the last point to this point passes through the pruner bounding box, otherwise returns false. So the method returns false if we are certain there is no intersection, but it may return true when there turns out to be no intersection.
-