/** returns true if the query matches the encoded triangle */ @Override protected boolean queryMatches(byte[] t, int[] scratchTriangle) { // decode indexed triangle XLatLonShape.decodeTriangle(t, scratchTriangle); int aY = scratchTriangle[0]; int aX = scratchTriangle[1]; int bY = scratchTriangle[2]; int bX = scratchTriangle[3]; int cY = scratchTriangle[4]; int cX = scratchTriangle[5]; if (queryRelation == XLatLonShape.QueryRelation.WITHIN) { return rectangle2D.containsTriangle(aX, aY, bX, bY, cX, cY); } return rectangle2D.intersectsTriangle(aX, aY, bX, bY, cX, cY); }