View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.agent.navigation;
2   
3   import cz.cuni.amis.pogamut.base.agent.navigation.IPathFuture;
4   import cz.cuni.amis.pogamut.base.agent.navigation.IPathPlanner;
5   import cz.cuni.amis.pogamut.base3d.worldview.object.ILocated;
6   import cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004Bot;
7   
8   /**
9    * Finds the shortest through internal A* algorithm in the UT2004. The path info is send through GB2004 messages.
10   * <p><p>
11   * Returns {@link UT2004AStarPathFuture} that contains the logic for obtaining the path from UT2004 (note that it takes
12   * some time then UT2004 sends you a path).
13   * <p><p>
14   * <b>IMPORTANT:</b> Due to restrictions of the UnrealScript path planner this implementation returns only paths of maximal length 16.
15   * Therefore returned path may end on the half way trough. Therefore, whenever the {@link IPathExecutor} reports that
16   * the bot has reached its target, you should compare bot's current position and the {@link UT2004AStarPathFuture#getPathTo()}.
17   * 
18   * @author Ik
19   * @author Jimmy
20   */
21  public class UT2004AStarPathPlanner implements IPathPlanner<ILocated> {
22  
23  	private UT2004Bot bot;
24  
25  	public UT2004AStarPathPlanner(UT2004Bot bot) {
26  		this.bot = bot;
27  	}
28  	
29  	@Override
30  	public IPathFuture<ILocated> computePath(ILocated from, ILocated to) {
31  		return new UT2004AStarPathFuture(bot, from, to);
32  	}
33  
34  }