1 package cz.cuni.amis.utils.astar;
2
3 /**
4 * Evaluator is extending a functionality of {@link AStarHeuristic} allowing
5 * you to additionally specified which NODEs can't be visited at all or assign
6 * extra cost to edges between nodes which is added to {@link AStarMap#getEdgeCost(Object, Object)}
7 * when computing distances between them.
8 *
9 * @author Jimmy
10 *
11 * @param <NODE>
12 *
13 * <p><p>
14 * Use amis-path-finding library instead, see svn://artemis.ms.mff.cuni.cz/pogamut/trunk/project/Utils/AmisPathFinding
15 */
16 @Deprecated
17 public interface AStarEvaluator<NODE> extends AStarHeuristic<NODE> {
18
19 /**
20 * Returns true if A* can use this node (e.g. to step on this type of floor)
21 * You can use it to forbid some specific nodes
22 */
23 public boolean isNodeOpened(NODE node);
24
25 /**
26 * Returns extra cost to add to value when trying to go
27 * nodeFrom to nodeTo ... of course it can depends only on nodeTo
28 * (some special kind of a floor for instance)
29 *
30 * Don't worry about the edge cost to become negative, A* ensures that
31 * that the least cost is 0 (Algorithm can't work over graphs with negative
32 * costs.)
33 *
34 * @return extra cost of edge for nodeFrom -> nodeTo
35 */
36 public int getExtraCost(NODE nodeFrom, NODE nodeTo);
37
38 }