Class TCODDijkstra¶
Defined in File path.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class TCODDijkstra¶
Public Functions
-
TCODDijkstra(int width, int height, const ITCODPathCallback *listener, void *userData, float diagonalCost = 1.41f)¶
-
TCODDijkstra(const TCODDijkstra&) = delete¶
-
TCODDijkstra &operator=(const TCODDijkstra&) = delete¶
-
inline TCODDijkstra(TCODDijkstra &&rhs) noexcept¶
-
inline TCODDijkstra &operator=(TCODDijkstra &&rhs) noexcept¶
-
~TCODDijkstra(void)¶
-
void compute(int rootX, int rootY)¶
In case of Dijkstra, this works in a slightly different way. In order to be able to compute a path, Dijkstra must first analyze the distances from the selected root (origin) node to all other nodes:
@noop path_compute
- Parameters
dijkstra – In the C version, the path handler returned by a creation function.
root_x, root_y – Coordinates of the root node (origin) of the path. The coordinates should be inside the map, at a walkable position. Otherwise, the function’s behaviour will be undefined.
-
bool setPath(int toX, int toY)¶
After the map is analyzed and all the distances from the root node are known, an unlimited number of paths can be set, all originating at the root node, using: The path setting function will return true if there’s a path from the root node to the destination node. Otherwise, it will return false.
@noop path_compute
TCODMap *myMap = new TCODMap(50,50); TCODDijkstra *dijkstra = new TCODDijkstra(myMap); // allocate the path dijkstra->compute(25,25); // calculate distance from 25,25 to all other nodes dijkstra->setPath(5,5); // calculate a path to node 5,5 dijkstra->setPath(45,45); //calculate another path from the same origin
TCOD_map_t my_map=TCOD_map_new(50,50); TCOD_dijkstra_t dijkstra = TCOD_dijkstra_new(my_map); TCOD_dijkstra_compute(dijkstra,25,25); TCOD_dijkstra_path_set(dijkstra,5,5); TCOD_dijkstra_path_set(dijkstra,45,45);
my_map=libtcod.map_new(50,50) dijkstra = libtcod.dijkstra_new(my_map) libtcod.dijkstra_compute(dijkstra,25,25) libtcod.dijkstra_path_set(dijkstra,5,5) libtcod.dijkstra_path_set(dijkstra,45,45)
- Parameters
dijkstra – In the C version, the path handler returned by a creation function.
to_x, to_y – Coordinates of the destination node of the path.
-
float getDistance(int x, int y)¶
You can get the distance of any set of coordinates from the root node: Note that if the coordinates x,y are outside of the map or are a non-walkable position, the function will return -1.0f. This functionality is only available for Dijkstra’s algorithm.
@noop path_read
- Parameters
dijkstra – In the C version, the path handler returned by a creation function.
x, y – The coordinates whose distance from the root node are to be checked
-
bool walk(int *x, int *y)¶
-
bool isEmpty() const¶
-
void reverse()¶
-
int size() const¶
-
void get(int index, int *x, int *y) const¶
-
TCODDijkstra(int width, int height, const ITCODPathCallback *listener, void *userData, float diagonalCost = 1.41f)¶