package org.osm2world.core.map_elevation.data; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.osm2world.core.map_data.data.MapElement; import org.osm2world.core.math.VectorXYZ; import org.osm2world.core.math.VectorXZ; /** * abstract superclass for all {@link MapElement}s' elevation profiles */ abstract public class ElevationProfile { public abstract double getEleAt(VectorXZ pos); public VectorXYZ getWithEle(VectorXZ pos) { return pos.xyz(getEleAt(pos)); } public List<VectorXYZ> getWithEle(List<VectorXZ> posList) { ArrayList<VectorXYZ> result = new ArrayList<VectorXYZ>(posList.size()); for (VectorXZ pos : posList) { result.add(getWithEle(pos)); } return result; } public abstract Collection<VectorXYZ> getPointsWithEle(); public abstract double getMinEle(); public abstract double getMaxEle(); abstract protected MapElement getElement(); }