#include <gts.h>
#define GTS_GNODE_CLASS (klass)
#define GTS_GNODE (obj)
#define GTS_IS_GNODE (obj)
#define GTS_GNODE_NEIGHBOR (n,e)
struct GtsGNodeClass;
struct GtsGNode;
GtsGNodeClass* gts_gnode_class (void);
GtsGNode* gts_gnode_new (GtsGNodeClass *klass);
guint gts_gnode_degree (GtsGNode *n,
GtsGraph *g);
void gts_gnode_foreach_edge (GtsGNode *n,
GtsGraph *g,
GtsFunc func,
gpointer data);
void gts_gnode_foreach_neighbor (GtsGNode *n,
GtsGraph *g,
GtsFunc func,
gpointer data);
gfloat gts_gnode_weight (GtsGNode *n);
gfloat gts_gnode_move_cost (GtsGNode *n,
GtsGraph *src,
GtsGraph *dst);
#define GTS_GEDGE_CLASS (klass)
#define GTS_GEDGE (obj)
#define GTS_IS_GEDGE (obj)
struct GtsGEdgeClass;
struct GtsGEdge;
GtsGEdgeClass* gts_gedge_class (void);
GtsGEdge* gts_gedge_new (GtsGEdgeClass *klass,
GtsGNode *n1,
GtsGNode *n2);
gfloat gts_gedge_weight (GtsGEdge *e);
#define gts_gedge_connects (e, a1, a2)
#define GTS_GRAPH_CLASS (klass)
#define GTS_GRAPH (obj)
#define GTS_IS_GRAPH (obj)
struct GtsGraphClass;
struct GtsGraph;
GtsGraphClass* gts_graph_class (void);
GtsGraph* gts_graph_new (GtsGraphClass *klass,
GtsGNodeClass *node_class,
GtsGEdgeClass *edge_class);
guint gts_graph_read (GtsGraph *g,
FILE *fp);
void gts_graph_print_stats (GtsGraph *g,
FILE *fp);
void gts_graph_foreach_edge (GtsGraph *g,
GtsFunc func,
gpointer data);
struct GtsGraphTraverse;
enum GtsTraverseType;
GtsGraphTraverse* gts_graph_traverse_new (GtsGraph *g,
GtsGNode *n,
GtsTraverseType type,
gboolean reinit);
GtsGNode* gts_graph_traverse_next (GtsGraphTraverse *t);
GtsGNode* gts_graph_traverse_what_next (GtsGraphTraverse *t);
void gts_graph_traverse_destroy (GtsGraphTraverse *t);
guint gts_graph_edges_cut (GtsGraph *g);
gfloat gts_graph_edges_cut_weight (GtsGraph *g);
guint gts_graph_distance_sum (GtsGraph *g,
GtsGNode *center);
GtsGNode* gts_graph_farthest (GtsGraph *g,
GSList *gnodes);
gfloat gts_graph_weight (GtsGraph *g);
#define GTS_FNODE_CLASS (klass)
#define GTS_FNODE (obj)
#define GTS_IS_FNODE (obj)
struct GtsFNode;
struct GtsFNodeClass;
GtsFNodeClass* gts_fnode_class (void);
GtsFNode* gts_fnode_new (GtsFNodeClass *klass,
GtsFace *f);
GtsGraph* gts_surface_graph_new (GtsGraphClass *klass,
GtsSurface *s);
GtsSurface* gts_surface_graph_surface (GtsGraph *surface_graph,
GtsSurface *s); |