package iamrescue.routing.costs; import iamrescue.execution.command.IPath; import iamrescue.util.PositionXY; import java.util.List; import rescuecore2.standard.entities.Area; import rescuecore2.standard.entities.Blockade; import rescuecore2.standard.entities.StandardWorldModel; public interface IRoutingCostFunction { /** * Calculates the cost of moving through the given area, starting from the * position given by "from" to the position given by "to". * * @param area * Area to traverse * @param from * Starting position * @param to * Destination * @return Cost of travel */ public double getTravelCost(Area area, PositionXY from, PositionXY to); /** * Calculates the entire cost of the path. * * @param path * The path. * @param worldModel * The world model (to extract info about path). * @return The cost of the path. */ public double getCost(IPath path, StandardWorldModel worldModel); }