lifo-dijkstraserv/src/dijkstrasearch.h

41 lines
1.2 KiB
C

#ifndef DIJKSTRASEARCH_H
#define DIJKSTRASEARCH_H
#include "dijkstragraph.h"
#define DIJKSTRA_SEARCH_MAX_ITERATIONS 5000
#define DIJKSTRA_ACCESS_PENALTY 300.0
struct dijkstra_state {
struct dijkstra_path *cheapest_path;
dijkstra_cost cost;
int visited;
};
struct dijkstra_search {
struct dijkstra_solver *solver;
struct dijkstra_state **states;
unsigned int node_count;
struct dijkstra_node *start;
GList *active_nodes;
};
struct dijkstra_search *dijkstra_search_new(struct dijkstra_solver *solver);
void dijkstra_search_free(struct dijkstra_search *search);
void dijkstra_search_set_start(struct dijkstra_search *search,
struct dijkstra_node *start);
int dijkstra_search_find_path(struct dijkstra_search *search,
struct dijkstra_node *destination);
GList *dijkstra_search_get_route(struct dijkstra_search *search,
struct dijkstra_node *destination);
/* Debugging functions */
void dijkstra_print_path(struct dijkstra_search *search,
struct dijkstra_node *destination);
void dijkstra_print_nodes(struct dijkstra_search *search);
int dijkstra_search_route_to_geojson(struct dijkstra_search *search,
GList *route,
char **buf);
#endif // DIJKSTRASEARCH_H