void addNode(final int nodeA, final int nodeB, final double lat1, final double lon1, final double lat2, final double lon2) { PointEmitter pointEmitter = new PointEmitter() { @Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } }; if (!distCalc.isCrossBoundary(lon1, lon2)) { BresenhamLine.calcPoints(lat1, lon1, lat2, lon2, pointEmitter, graph.getBounds().minLat, graph.getBounds().minLon, deltaLat, deltaLon); } }
BresenhamLine.calcPoints(.3, -.3, -0.2, 0.2, tmpEmitter, minLat, minLon, deltaLat, deltaLon); assertEquals(Arrays.asList(11L, 9L), keys); BresenhamLine.calcPoints(.3, -.1, -0.2, 0.4, tmpEmitter, minLat, minLon, deltaLat, deltaLon); BresenhamLine.calcPoints(.5, -.5, -0.1, 0.9, tmpEmitter, minLat, minLon, deltaLat, deltaLon);
@Test public void testBresenhamLineRightDown() { BresenhamLine.calcPoints(3, 1, 0, 3, emitter); // 3,1, 2,1, 1,1, 1,2, 0,2, 0,3 assertEquals(Helper.createPointList(3, 1, 2, 2, 1, 2, 0, 3), points); }
@Test public void testBresenhamVertical() { BresenhamLine.calcPoints(-.5, .5, 1, 0.5, emitter, 0, 0, 0.4, 0.6); assertEquals(Helper.createPointList(-0.36, .06, 0.04, 0.06, 0.44, 0.06, 0.84, 0.06), points); }
@Test public void testBresenhamLineRightUp() { BresenhamLine.calcPoints(0, 0, 2, 3, emitter); // 0,0, 0,1, 1,1, 1,2, 2,2, 2,3 assertEquals(Helper.createPointList(0, 0, 1, 1, 1, 2, 2, 3), points); }
@Test public void testBresenhamBug() { BresenhamLine.calcPoints(0.5, -0.5, -0.6, 1.6, emitter, -1, -1, 0.75, 1.3); assertEquals(Helper.createPointList(0.575, -0.87, -0.175, 0.43, -0.925, 1.73), points); }
@Test public void testBresenhamLineLeftDown() { BresenhamLine.calcPoints(5, 2, 0, 0, emitter); // 5,2, 4,2, 3,2, 3,1, 2,1, 1,1, 0,0 assertEquals(Helper.createPointList(5, 2, 4, 2, 3, 1, 2, 1, 1, 0, 0, 0), points); }
@Test public void testBresenhamLineLeftUp() { BresenhamLine.calcPoints(2, 2, 3, 0, emitter); // 2,2, 2,1, 2,0, 3,0 assertEquals(Helper.createPointList(2, 2, 2, 1, 3, 0), points); }
@Test public void testBresenhamHorizontal() { BresenhamLine.calcPoints(.5, -.5, .5, 1, emitter, -1, -1, 0.6, 0.4); assertEquals(Helper.createPointList(.26, -.56, .26, -0.16, .26, .24, .26, .64, .26, 1.04), points); }
@Test public void testBresenhamToLeft() { BresenhamLine.calcPoints( 47.57383, 9.61984, 47.57382, 9.61890, emitter, 47, 9, 0.00647, 0.00964); assertEquals(points.toString(), 1, points.getSize()); } }
void addNode(final int nodeA, final int nodeB, final double lat1, final double lon1, final double lat2, final double lon2) { PointEmitter pointEmitter = new PointEmitter() { @Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } }; if (!distCalc.isCrossBoundary(lon1, lon2)) { BresenhamLine.calcPoints(lat1, lon1, lat2, lon2, pointEmitter, graph.getBounds().minLat, graph.getBounds().minLon, deltaLat, deltaLon); } }
void addNode(final int nodeA, final int nodeB, final double lat1, final double lon1, final double lat2, final double lon2) { PointEmitter pointEmitter = new PointEmitter() { @Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } }; if (!distCalc.isCrossBoundary(lon1, lon2)) { BresenhamLine.calcPoints(lat1, lon1, lat2, lon2, pointEmitter, graph.getBounds().minLat, graph.getBounds().minLon, deltaLat, deltaLon); } }
void addNode( final int nodeA, final int nodeB, final double lat1, final double lon1, final double lat2, final double lon2 ) { PointEmitter pointEmitter = new PointEmitter() { @Override public void set( double lat, double lon ) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } }; if (!distCalc.isCrossBoundary(lon1, lon2)) { BresenhamLine.calcPoints(lat1, lon1, lat2, lon2, pointEmitter, graph.getBounds().minLat, graph.getBounds().minLon, deltaLat, deltaLon); } }