public class RectangleLineIntersector
extends java.lang.Object
Rectangles contain a large amount of inherent symmetry (or to put it another way, although they contain four coordinates they only actually contain 4 ordinates worth of information). The algorithm used takes advantage of the symmetry of the geometric situation to optimize performance by minimizing the number of line intersection tests.
Modifier and Type | Field and Description |
---|---|
private Coordinate |
diagDown0 |
private Coordinate |
diagDown1 |
private Coordinate |
diagUp0 |
private Coordinate |
diagUp1 |
private LineIntersector |
li |
private Envelope |
rectEnv |
Constructor and Description |
---|
RectangleLineIntersector(Envelope rectEnv)
Creates a new intersector for the given query rectangle,
specified as an
Envelope . |
Modifier and Type | Method and Description |
---|---|
boolean |
intersects(Coordinate p0,
Coordinate p1)
Tests whether the query rectangle intersects a
given line segment.
|
private LineIntersector li
private Envelope rectEnv
private Coordinate diagUp0
private Coordinate diagUp1
private Coordinate diagDown0
private Coordinate diagDown1
public boolean intersects(Coordinate p0, Coordinate p1)
p0
- the first endpoint of the segmentp1
- the second endpoint of the segment