package org.osm2world.core.map_elevation.creation;
import org.osm2world.core.heightmap.data.TerrainPoint;
import org.osm2world.core.map_data.data.MapData;
import org.osm2world.core.map_data.data.MapElement;
import org.osm2world.core.map_elevation.data.ElevationProfile;
/**
* calculates elevations using information from {@link MapData}
* and terrain elevation data
*
* TODO new documentation
*/
public interface ElevationCalculator {
/**
* provides elevation information for all elements in the {@link MapData}.
*
* Implementations of this method need to <ul>
* <li>set {@link ElevationProfile}s for all {@link MapElement}s</li>
* <li>determine elevation of all {@link TerrainPoint}s with unknown
* elevation by using {@link TerrainPoint#setEle(float)}.</li>
* </ul>
*
* @param mapData map data without elevation profiles; != null
* @param eleData terrain elevation data;
* whether null is allowed depends on the implementation
*/
public void calculateElevations(MapData mapData,
TerrainElevationData eleData);
}