public void addAll (short[] array, int offset, int length) { ensureCapacity(length); for (int i = offset, n = i + length; i < n; i++) add(array[i]); }
private void addStash (short key) { if (stashSize == stashCapacity) { // Too many pushes occurred and the stash is full, increase the table size. resize(capacity << 1); add(key); return; } // Store key in the stash. int index = capacity + stashSize; keyTable[index] = key; stashSize++; size++; }
for (int i = idx; i < idx + (packed[p] & 0xffff); i++) { int x = hilbertX[i], y = hilbertY[i], dist = hilbertDistances[x + (y << 8)]; if (ss.add((short) dist)) { for (int xx = Math.max(0, x - minDistance); xx <= Math.min(255, x + minDistance); xx++) { for (int yy = Math.max(0, y - minDistance); yy <= Math.min(255, y + minDistance); yy++) { dist = hilbertDistances[xx + (yy << 8)]; if(dist >= i) ss.add((short) dist);
public void addAll (ShortSet set) { ensureCapacity(set.size); ShortSetIterator iterator = set.iterator(); while (iterator.hasNext) add(iterator.next()); }
private static void modifiedShadowFOV(int expansion, int viewerX, int viewerY, Radius metric, ShortSet bounds, ShortSet storedSet, ShortVLA vla) { if(expansion < 1) return; short start = hilbertDistances[viewerX + (viewerY << 8)]; if(storedSet.add(start)) vla.add(start); for (Direction d : Direction.DIAGONALS) { modifiedShadowCast(expansion, 1, 1.0, 0.0, 0, d.deltaX, d.deltaY, 0, viewerX, viewerY, metric, bounds, storedSet, vla); modifiedShadowCast(expansion, 1, 1.0, 0.0, d.deltaX, 0, 0, d.deltaY, viewerX, viewerY, metric, bounds, storedSet, vla); } }
for (int i = idx; i < idx + (packed[p] & 0xffff); i++) { int x = hilbertX[i], y = hilbertY[i], dist = hilbertDistances[x + (y << 8)]; if (ss.add((short) dist)) { for (int xx = Math.max(0, x - minDistance); xx <= Math.min(255, x + minDistance); xx++) { for (int yy = Math.max(0, y - minDistance); yy <= Math.min(255, y + minDistance); yy++) { dist = hilbertDistances[xx + (yy << 8)]; if(dist >= i) ss.add((short) dist);
for (int i = idx; i < idx + (packed[p] & 0xffff); i++) { int x = hilbertX[i], y = hilbertY[i], dist = hilbertDistances[x + (y << 8)]; if (ss.add((short) dist)) { for (int d = 0; d < 4; d++) { for (int e = 1; e <= minDistance; e++) { dist = hilbertDistances[xx + (yy << 8)]; if (dist >= i) ss.add((short) dist);
for (int i = idx; i < idx + (packed[p] & 0xffff); i++) { int x = hilbertX[i], y = hilbertY[i], dist = hilbertDistances[x + (y << 8)]; if (ss.add((short) dist)) { for (int d = 0; d < 4; d++) { for (int e = 1; e <= minDistance; e++) { dist = hilbertDistances[xx + (yy << 8)]; if (dist >= i) ss.add((short) dist);
for (int k = Math.max(0, y - expansion); k <= Math.min(height - 1, y + expansion); k++) { dist = hilbertDistances[j + (k << 8)]; if (ss.add(dist)) vla.add(dist);
if (on) { for (i = idx; i < idx + (bounds[p] & 0xffff); i++) { quickBounds.add((short) i);