#ifndef DIJKSTRAGRAPH_H #define DIJKSTRAGRAPH_H #include #define DIJKSTRA_WEIGHT_AUTO (-1) typedef unsigned int dijkstra_cost; #define DIJKSTRA_COST_MAX UINT_MAX struct dijkstra_solver { GList *nodes; GList *paths; }; struct position { float x; float y; }; struct dijkstra_path { struct dijkstra_node *source; struct dijkstra_node *destination; char *name; dijkstra_cost weight; }; struct dijkstra_node { struct position position; GList *paths; int uid; }; struct dijkstra_path *dijkstra_path_new_to_list(struct dijkstra_solver *solver, float x1, float y1, float x2, float y2, char *name, dijkstra_cost weight); struct dijkstra_solver *dijkstra_solver_new(); void dijkstra_solver_free(struct dijkstra_solver *solver); #endif // DIJKSTRAGRAPH_H