View Javadoc

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  }