lifo-dijkstraserv/src/dijkstrasearch.h

49 lines
945 B
C

#ifndef DIJKSTRASEARCH_H
#define DIJKSTRASEARCH_H
#include <glib.h>
typedef int dijkstra_cost;
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;
dijkstra_cost cost;
};
struct dijkstra_node *dijkstra_node_new(float x,
float y);
struct dijkstra_path *dijkstra_path_new(char *name,
struct dijkstra_node *source,
struct dijkstra_node *destination,
dijkstra_cost weight);
int dijkstra_path_intersect(GList **nodes,
GList **paths,
struct dijkstra_path *path_a,
struct dijkstra_path *path_b);
struct dijkstra_path *dijkstra_path_new_to_list(GList **nodes,
GList **paths,
float x1,
float y1,
float x2,
float y2,
char *name,
dijkstra_cost weight);
#endif // DIJKSTRASEARCH_H