public class Rectangle2D
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected byte[] |
bbox |
protected int |
maxX |
protected int |
maxY |
protected int |
minX |
protected int |
minY |
private byte[] |
west |
Modifier | Constructor and Description |
---|---|
protected |
Rectangle2D(double minLat,
double maxLat,
double minLon,
double maxLon) |
protected |
Rectangle2D(int minX,
int maxX,
int minY,
int maxY) |
Modifier and Type | Method and Description |
---|---|
private static boolean |
bboxContainsPoint(int x,
int y,
int minX,
int maxX,
int minY,
int maxY)
static utility method to check if a bounding box contains a point
|
private static boolean |
bboxContainsTriangle(int ax,
int ay,
int bx,
int by,
int cx,
int cy,
int minX,
int maxX,
int minY,
int maxY)
static utility method to check if a bounding box contains a triangle
|
private static boolean |
boxesAreDisjoint(int aMinX,
int aMaxX,
int aMinY,
int aMaxY,
int bMinX,
int bMaxX,
int bMinY,
int bMaxY)
utility method to check if two boxes are disjoint
|
private static PointValues.Relation |
compareBBoxToRangeBBox(byte[] bbox,
int minXOffset,
int minYOffset,
byte[] minTriangle,
int maxXOffset,
int maxYOffset,
byte[] maxTriangle)
static utility method to compare a bbox with a range of triangles (just the bbox of the triangle collection)
|
boolean |
containsTriangle(int ax,
int ay,
int bx,
int by,
int cx,
int cy)
Checks if the rectangle contains the provided triangle
|
static Rectangle2D |
create(Rectangle rectangle)
Builds a Rectangle2D from rectangle
|
boolean |
crossesDateline() |
private static boolean |
disjoint(byte[] bbox,
int minXOffset,
int minYOffset,
byte[] minTriangle,
int maxXOffset,
int maxYOffset,
byte[] maxTriangle)
static utility method to check a bbox is disjoint with a range of triangles
|
private static boolean |
edgeIntersectsBox(int ax,
int ay,
int bx,
int by,
int minX,
int maxX,
int minY,
int maxY)
returns true if the edge (defined by (ax, ay) (bx, by)) intersects the query
|
private boolean |
edgeIntersectsQuery(int ax,
int ay,
int bx,
int by)
returns true if the edge (defined by (ax, ay) (bx, by)) intersects the query
|
private static void |
encode(int minX,
int maxX,
int minY,
int maxY,
byte[] b)
encodes a bounding box into the provided byte array
|
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
private static PointValues.Relation |
intersectBBoxWithRangeBBox(byte[] bbox,
int minXOffset,
int minYOffset,
byte[] minTriangle,
int maxXOffset,
int maxYOffset,
byte[] maxTriangle)
static utility method to compare a bbox with a range of triangles (just the bbox of the triangle collection)
for intersection
|
PointValues.Relation |
intersectRangeBBox(int minXOffset,
int minYOffset,
byte[] minTriangle,
int maxXOffset,
int maxYOffset,
byte[] maxTriangle)
intersects this to a provided range bounding box
|
boolean |
intersectsTriangle(int aX,
int aY,
int bX,
int bY,
int cX,
int cY)
Checks if the rectangle intersects the provided triangle
|
boolean |
queryContainsPoint(int x,
int y)
Checks if the rectangle contains the provided point
|
private boolean |
queryIntersects(int ax,
int ay,
int bx,
int by,
int cx,
int cy)
returns true if the query intersects the provided triangle (in encoded space)
|
PointValues.Relation |
relateRangeBBox(int minXOffset,
int minYOffset,
byte[] minTriangle,
int maxXOffset,
int maxYOffset,
byte[] maxTriangle)
compare this to a provided range bounding box
|
Component2D.WithinRelation |
withinTriangle(int ax,
int ay,
boolean ab,
int bx,
int by,
boolean bc,
int cx,
int cy,
boolean ca)
Returns the Within relation to the provided triangle
|
protected final byte[] bbox
private final byte[] west
protected final int minX
protected final int maxX
protected final int minY
protected final int maxY
protected Rectangle2D(double minLat, double maxLat, double minLon, double maxLon)
protected Rectangle2D(int minX, int maxX, int minY, int maxY)
public static Rectangle2D create(Rectangle rectangle)
public boolean crossesDateline()
public boolean queryContainsPoint(int x, int y)
public PointValues.Relation relateRangeBBox(int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle)
public PointValues.Relation intersectRangeBBox(int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle)
public boolean intersectsTriangle(int aX, int aY, int bX, int bY, int cX, int cY)
public Component2D.WithinRelation withinTriangle(int ax, int ay, boolean ab, int bx, int by, boolean bc, int cx, int cy, boolean ca)
public boolean containsTriangle(int ax, int ay, int bx, int by, int cx, int cy)
private static PointValues.Relation compareBBoxToRangeBBox(byte[] bbox, int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle)
private static PointValues.Relation intersectBBoxWithRangeBBox(byte[] bbox, int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle)
private static boolean disjoint(byte[] bbox, int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle)
private static void encode(int minX, int maxX, int minY, int maxY, byte[] b)
private boolean queryIntersects(int ax, int ay, int bx, int by, int cx, int cy)
private boolean edgeIntersectsQuery(int ax, int ay, int bx, int by)
private static boolean bboxContainsPoint(int x, int y, int minX, int maxX, int minY, int maxY)
private static boolean bboxContainsTriangle(int ax, int ay, int bx, int by, int cx, int cy, int minX, int maxX, int minY, int maxY)
private static boolean edgeIntersectsBox(int ax, int ay, int bx, int by, int minX, int maxX, int minY, int maxY)
private static boolean boxesAreDisjoint(int aMinX, int aMaxX, int aMinY, int aMaxY, int bMinX, int bMaxX, int bMinY, int bMaxY)
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object