1 package cz.cuni.amis.pogamut.ut2004.agent.navigation;
2
3 import cz.cuni.amis.pogamut.base3d.worldview.object.ILocated;
4 import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
5 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPointNeighbourLink;
6
7 /**
8 * Runner is actually responsible for running directly between two locations.
9 *
10 *
11 * @author Jimmy
12 *
13 */
14 public interface IUT2004PathRunner {
15
16 /**
17 * Resets the runner state.
18 * <p><p>
19 * Called before the navigator turns its attention to another location.
20 */
21 public void reset();
22
23 /**
24 * Called iteratively to reach the 'firstLocation'. This method should get the bot to the 'firstLocation'.
25 * <p><p>
26 * The 'secondLocation' is the location that will most likely be pursued next.
27 *
28 * @param runningFrom location we're running from (i.e., where the bot may safely return), may be null
29 * @param firstLocation where the bot should run to
30 * @param secondLocation where the bot will the most likely continue its run
31 * @param focus where the bot should be looking while running
32 * @param navPointsLink if we are traveling between two NavPoints connected by a link, we will receive the link with movement information here
33 * @return
34 */
35 public boolean runToLocation(Location runningFrom, Location firstLocation, Location secondLocation, ILocated focus, NavPointNeighbourLink navPointsLink, boolean reachable);
36
37 }