rendered paste bodyprivate static final boolean isDTMAt(short[][][] colorMap, DTM dtm, int x, int y) { int r = dtm.rgb.r; int g = dtm.rgb.g; int b = dtm.rgb.b; int tolerance = dtm.tolerance; int size = dtm.areaSize; if (dtm.type == DTM.CROSS) { int redChange = r - colorMap[x][y][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } int greenChange = g - colorMap[x][y][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } int blueChange = b - colorMap[x][y][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } for (int i = 1; i <= size; i++) { redChange = r - colorMap[x + size][y][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x + size][y][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x + size][y][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x - size][y][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x - size][y][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x - size][y][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x][y + size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x][y + size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x][y + size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x][y - size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x][y - size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x][y - size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } } } else if (dtm.type == DTM.DIAGONALCROSS) { int redChange = r - colorMap[x][y][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } int greenChange = g - colorMap[x][y][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } int blueChange = b - colorMap[x][y][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } for (int i = 1; i <= size; i++) { redChange = r - colorMap[x + size][y + size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x + size][y + size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x + size][y + size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x - size][y - size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x - size][y - size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x - size][y - size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x - size][y + size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x - size][y + size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x - size][y + size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } redChange = r - colorMap[x + size][y - size][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } greenChange = g - colorMap[x + size][y - size][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } blueChange = b - colorMap[x + size][y - size][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } } } else if (dtm.type == DTM.RECTANGLE) { for (int tx = x - size; tx <= x + size; tx++) { for (int ty = y - size; ty <= y + size; ty++) { int redChange = r - colorMap[tx][ty][0]; if ((redChange >= 0 ? redChange : -redChange) > tolerance) { return false; } int greenChange = g - colorMap[tx][ty][1]; if ((greenChange >= 0 ? greenChange : -greenChange) > tolerance) { return false; } int blueChange = b - colorMap[tx][ty][2]; if ((blueChange >= 0 ? blueChange : -blueChange) > tolerance) { return false; } } } } return false; }