49 lines
945 B
C
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
|