1 package cz.cuni.amis.pogamut.udk.agent.navigation.timeoutestimator; 2 3 import java.util.List; 4 5 import cz.cuni.amis.pogamut.base.agent.navigation.IPathExecutionEstimator; 6 import cz.cuni.amis.pogamut.base3d.worldview.object.ILocated; 7 import cz.cuni.amis.pogamut.base3d.worldview.object.Location; 8 9 public class UDKBasicTimeoutEstimator<PATH_ELEMENT extends ILocated> implements IPathExecutionEstimator<PATH_ELEMENT> { 10 11 int basicTimeout = 5000; 12 13 public UDKBasicTimeoutEstimator() { 14 } 15 16 public UDKBasicTimeoutEstimator(int basicTimeout) { 17 this.basicTimeout = basicTimeout; 18 } 19 20 21 22 23 @Override 24 public double getTimeout(List<PATH_ELEMENT> path) { 25 if (path == null) return 0; 26 if (path.size() <= 1) return basicTimeout; 27 Location loc = path.get(0).getLocation(); 28 double totalDistance = 0; 29 30 for (int i = 1; i < path.size(); ++i) { 31 totalDistance += loc.getDistance(path.get(i).getLocation()); 32 loc = path.get(i).getLocation(); 33 } 34 35 return basicTimeout + totalDistance * 5; 36 } 37 38 39 }