@Test public void calculatesElevationOnThreePoints() { assertEquals(-0.88, elevationInterpolator.calculateElevationBasedOnThreePoints(0, 0, 1, 2, 3, 4, 6, 9, 12, 11, 9), PRECISION); assertEquals(15, elevationInterpolator.calculateElevationBasedOnThreePoints(10, 0, 0, 0, 0, 10, 10, 10, 10, -10, 20), PRECISION); assertEquals(5, elevationInterpolator.calculateElevationBasedOnThreePoints(5, 5, 0, 0, 0, 10, 10, 10, 20, 20, 20), PRECISION); }
private void interpolateElevationsOfInnerNodesForThreeOuterNodes(int firstOuterNodeId, int secondOuterNodeId, int thirdOuterNodeId, int[] innerNodeIds) { NodeAccess nodeAccess = storage.getNodeAccess(); double lat0 = nodeAccess.getLat(firstOuterNodeId); double lon0 = nodeAccess.getLon(firstOuterNodeId); double ele0 = nodeAccess.getEle(firstOuterNodeId); double lat1 = nodeAccess.getLat(secondOuterNodeId); double lon1 = nodeAccess.getLon(secondOuterNodeId); double ele1 = nodeAccess.getEle(secondOuterNodeId); double lat2 = nodeAccess.getLat(thirdOuterNodeId); double lon2 = nodeAccess.getLon(thirdOuterNodeId); double ele2 = nodeAccess.getEle(thirdOuterNodeId); for (int innerNodeId : innerNodeIds) { double lat = nodeAccess.getLat(innerNodeId); double lon = nodeAccess.getLon(innerNodeId); double ele = elevationInterpolator.calculateElevationBasedOnThreePoints(lat, lon, lat0, lon0, ele0, lat1, lon1, ele1, lat2, lon2, ele2); nodeAccess.setNode(innerNodeId, lat, lon, ele); } }
pointList.getLon(1), pointList.getEle(1)); } else if (size == 3) { return calculateElevationBasedOnThreePoints(lat, lon, pointList.getLat(0), pointList.getLon(0), pointList.getEle(0), pointList.getLat(1), pointList.getLon(1), pointList.getEle(1), pointList.getLat(2),
private void interpolateElevationsOfInnerNodesForThreeOuterNodes(int firstOuterNodeId, int secondOuterNodeId, int thirdOuterNodeId, int[] innerNodeIds) { NodeAccess nodeAccess = storage.getNodeAccess(); double lat0 = nodeAccess.getLat(firstOuterNodeId); double lon0 = nodeAccess.getLon(firstOuterNodeId); double ele0 = nodeAccess.getEle(firstOuterNodeId); double lat1 = nodeAccess.getLat(secondOuterNodeId); double lon1 = nodeAccess.getLon(secondOuterNodeId); double ele1 = nodeAccess.getEle(secondOuterNodeId); double lat2 = nodeAccess.getLat(thirdOuterNodeId); double lon2 = nodeAccess.getLon(thirdOuterNodeId); double ele2 = nodeAccess.getEle(thirdOuterNodeId); for (int innerNodeId : innerNodeIds) { double lat = nodeAccess.getLat(innerNodeId); double lon = nodeAccess.getLon(innerNodeId); double ele = elevationInterpolator.calculateElevationBasedOnThreePoints(lat, lon, lat0, lon0, ele0, lat1, lon1, ele1, lat2, lon2, ele2); nodeAccess.setNode(innerNodeId, lat, lon, ele); } }
private void interpolateElevationsOfInnerNodesForThreeOuterNodes(int firstOuterNodeId, int secondOuterNodeId, int thirdOuterNodeId, int[] innerNodeIds) { NodeAccess nodeAccess = storage.getNodeAccess(); double lat0 = nodeAccess.getLat(firstOuterNodeId); double lon0 = nodeAccess.getLon(firstOuterNodeId); double ele0 = nodeAccess.getEle(firstOuterNodeId); double lat1 = nodeAccess.getLat(secondOuterNodeId); double lon1 = nodeAccess.getLon(secondOuterNodeId); double ele1 = nodeAccess.getEle(secondOuterNodeId); double lat2 = nodeAccess.getLat(thirdOuterNodeId); double lon2 = nodeAccess.getLon(thirdOuterNodeId); double ele2 = nodeAccess.getEle(thirdOuterNodeId); for (int innerNodeId : innerNodeIds) { double lat = nodeAccess.getLat(innerNodeId); double lon = nodeAccess.getLon(innerNodeId); double ele = elevationInterpolator.calculateElevationBasedOnThreePoints(lat, lon, lat0, lon0, ele0, lat1, lon1, ele1, lat2, lon2, ele2); nodeAccess.setNode(innerNodeId, lat, lon, ele); } }
pointList.getLon(1), pointList.getEle(1)); } else if (size == 3) { return calculateElevationBasedOnThreePoints(lat, lon, pointList.getLat(0), pointList.getLon(0), pointList.getEle(0), pointList.getLat(1), pointList.getLon(1), pointList.getEle(1), pointList.getLat(2),
pointList.getLon(1), pointList.getEle(1)); } else if (size == 3) { return calculateElevationBasedOnThreePoints(lat, lon, pointList.getLat(0), pointList.getLon(0), pointList.getEle(0), pointList.getLat(1), pointList.getLon(1), pointList.getEle(1), pointList.getLat(2),