private double includePoint(int pointer, AtomicInteger counter) { short value = heights.getShort(pointer); if (value == Short.MIN_VALUE) return 0; counter.incrementAndGet(); return value; }
protected BufferedImage makeARGB() { BufferedImage argbImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = argbImage.getGraphics(); long len = width * height; for (int i = 0; i < len; i++) { int lonSimilar = i % width; // no need for width - y as coordinate system for Graphics is already this way int latSimilar = i / height; int green = Math.abs(heights.getShort(i * 2)); if (green == 0) { g.setColor(new Color(255, 0, 0, 255)); } else { int red = 0; while (green > 255) { green = green / 10; red += 50; } if (red > 255) red = 255; g.setColor(new Color(red, green, 122, 255)); } g.drawLine(lonSimilar, latSimilar, lonSimilar, latSimilar); } g.dispose(); return argbImage; }
int value = heights.getShort(daPointer); AtomicInteger counter = new AtomicInteger(1); if (value == Short.MIN_VALUE)
@Test public void testSet_Get_Short_Long() { DataAccess da = createDataAccess(name); da.create(300); da.setShort(6, (short) (Short.MAX_VALUE / 5)); da.setShort(8, (short) (Short.MAX_VALUE / 7)); da.setShort(10, (short) (Short.MAX_VALUE / 9)); da.setShort(14, (short) (Short.MAX_VALUE / 10)); int unsignedShort = (int) Short.MAX_VALUE + 5; da.setShort(12, (short) unsignedShort); assertEquals(Short.MAX_VALUE / 5, da.getShort(6)); assertEquals(Short.MAX_VALUE / 7, da.getShort(8)); assertEquals(Short.MAX_VALUE / 9, da.getShort(10)); assertEquals(Short.MAX_VALUE / 10, da.getShort(14)); assertEquals(unsignedShort, (int) da.getShort(12) & 0x0000FFFF); // currently RAMIntDA does not support arbitrary byte positions if (!(da instanceof RAMIntDataAccess)) { da.setShort(7, (short) (Short.MAX_VALUE / 3)); assertEquals(Short.MAX_VALUE / 3, da.getShort(7)); // should be overwritten assertNotEquals(Short.MAX_VALUE / 3, da.getShort(8)); } da.close(); } }
/** * @return the weight from the specified node to the landmark (*as index*) */ public int getToWeight(int landmarkIndex, int node) { int res = (int) landmarkWeightDA.getShort((long) node * LM_ROW_LENGTH + landmarkIndex * 4 + TO_OFFSET) & 0x0000FFFF; assert res >= 0 : "Negative to weight " + res + ", landmark index:" + landmarkIndex + ", node:" + node; if (res == SHORT_INFINITY) return SHORT_MAX; // throw new IllegalStateException("Do not call getToWeight for wrong landmark[" + landmarkIndex + "]=" + landmarkIDs[landmarkIndex] + " and node " + node); return res; }
@Override public synchronized short getShort( long bytePos ) { return inner.getShort(bytePos); }
@Override public synchronized short getShort(long bytePos) { return inner.getShort(bytePos); }
boolean isInfinity(long pointer) { return ((int) landmarkWeightDA.getShort(pointer) & 0x0000FFFF) == SHORT_INFINITY; }
/** * @return the weight from the landmark to the specified node. Where the landmark integer is not * a node ID but the internal index of the landmark array. */ public int getFromWeight(int landmarkIndex, int node) { int res = (int) landmarkWeightDA.getShort((long) node * LM_ROW_LENGTH + landmarkIndex * 4 + FROM_OFFSET) & 0x0000FFFF; assert res >= 0 : "Negative to weight " + res + ", landmark index:" + landmarkIndex + ", node:" + node; if (res == SHORT_INFINITY) // TODO can happen if endstanding oneway // we should set a 'from' value to SHORT_MAX if the 'to' value was already set to find real bugs // and what to return? Integer.MAX_VALUE i.e. convert to Double.pos_infinity upstream? return SHORT_MAX; // throw new IllegalStateException("Do not call getFromWeight for wrong landmark[" + landmarkIndex + "]=" + landmarkIDs[landmarkIndex] + " and node " + node); // TODO if(res == MAX) fallback to beeline approximation!? return res; }
private double includePoint(int pointer, AtomicInteger counter) { short value = heights.getShort(pointer); if (value == Short.MIN_VALUE) return 0; counter.incrementAndGet(); return value; }
private double includePoint(int pointer, AtomicInteger counter) { short value = heights.getShort(pointer); if (value == Short.MIN_VALUE) return 0; counter.incrementAndGet(); return value; }
private double includePoint( int pointer, AtomicInteger counter ) { short value = heights.getShort(pointer); if (value == Short.MIN_VALUE) return 0; counter.incrementAndGet(); return value; }
protected BufferedImage makeARGB() { int height = width; BufferedImage argbImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = argbImage.getGraphics(); long len = width * width; for (int i = 0; i < len; i++) { int lonSimilar = i % width; // no need for width - y as coordinate system for Graphics is already this way int latSimilar = i / width; int green = Math.abs(heights.getShort(i * 2)); if (green == 0) { g.setColor(new Color(255, 0, 0, 255)); } else { int red = 0; while (green > 255) { green = green / 10; red += 50; } if (red > 255) red = 255; g.setColor(new Color(red, green, 122, 255)); } g.drawLine(lonSimilar, latSimilar, lonSimilar, latSimilar); } g.dispose(); return argbImage; }
protected BufferedImage makeARGB() { BufferedImage argbImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = argbImage.getGraphics(); long len = width * height; for (int i = 0; i < len; i++) { int lonSimilar = i % width; // no need for width - y as coordinate system for Graphics is already this way int latSimilar = i / height; int green = Math.abs(heights.getShort(i * 2)); if (green == 0) { g.setColor(new Color(255, 0, 0, 255)); } else { int red = 0; while (green > 255) { green = green / 10; red += 50; } if (red > 255) red = 255; g.setColor(new Color(red, green, 122, 255)); } g.drawLine(lonSimilar, latSimilar, lonSimilar, latSimilar); } g.dispose(); return argbImage; }
int green = Math.abs(heights.getShort(i * 2)); if (green == 0)
int value = heights.getShort(daPointer); AtomicInteger counter = new AtomicInteger(1); if (value == Short.MIN_VALUE)
int value = heights.getShort(daPointer); AtomicInteger counter = new AtomicInteger(1); if (value == Short.MIN_VALUE)
int value = heights.getShort(daPointer); AtomicInteger counter = new AtomicInteger(1); if (value == Short.MIN_VALUE)