/** compare this to a provided rangle bounding box **/ public PointValues.Relation relateRangeBBox(int minXOffset, int minYOffset, byte[] minTriangle, int maxXOffset, int maxYOffset, byte[] maxTriangle) { PointValues.Relation eastRelation = compareBBoxToRangeBBox(this.bbox, minXOffset, minYOffset, minTriangle, maxXOffset, maxYOffset, maxTriangle); if (this.crossesDateline() && eastRelation == PointValues.Relation.CELL_OUTSIDE_QUERY) { return compareBBoxToRangeBBox(this.west, minXOffset, minYOffset, minTriangle, maxXOffset, maxYOffset, maxTriangle); } return eastRelation; }
/** Checks if the rectangle contains the provided point **/ public boolean queryContainsPoint(int x, int y) { if (this.crossesDateline() == true) { return bboxContainsPoint(x, y, MIN_LON_ENCODED, this.maxX, this.minY, this.maxY) || bboxContainsPoint(x, y, this.minX, MAX_LON_ENCODED, this.minY, this.maxY); } return bboxContainsPoint(x, y, this.minX, this.maxX, this.minY, this.maxY); }
/** Checks if the rectangle contains the provided triangle **/ public boolean containsTriangle(int ax, int ay, int bx, int by, int cx, int cy) { if (this.crossesDateline() == true) { return bboxContainsTriangle(ax, ay, bx, by, cx, cy, MIN_LON_ENCODED, this.maxX, this.minY, this.maxY) || bboxContainsTriangle(ax, ay, bx, by, cx, cy, this.minX, MAX_LON_ENCODED, this.minY, this.maxY); } return bboxContainsTriangle(ax, ay, bx, by, cx, cy, minX, maxX, minY, 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) { if (this.crossesDateline() == true) { return edgeIntersectsBox(ax, ay, bx, by, MIN_LON_ENCODED, this.maxX, this.minY, this.maxY) || edgeIntersectsBox(ax, ay, bx, by, this.minX, MAX_LON_ENCODED, this.minY, this.maxY); } return edgeIntersectsBox(ax, ay, bx, by, this.minX, this.maxX, this.minY, this.maxY); }
if (this.crossesDateline() == true) { if (boxesAreDisjoint(tMinX, tMaxX, tMinY, tMaxY, MIN_LON_ENCODED, this.maxX, this.minY, this.maxY) && boxesAreDisjoint(tMinX, tMaxX, tMinY, tMaxY, this.minX, MAX_LON_ENCODED, this.minY, this.maxY)) {