1 #ifndef _LEO_LABELLER_H
2 #define _LEO_LABELLER_H
44 enum request_type type;
50 struct request request;
58 struct point_variant *variants;
61 struct request_segment
63 struct request request;
64 struct request_line *rl;
71 struct point_variant *variant;
75 struct request_section
77 struct request request;
79 struct request_segment *segments;
84 struct request request;
87 struct line_variant *variants;
88 struct request_section *sections;
93 struct request request;
94 struct osm_multipolygon *o;
96 struct point_variant *variants;
103 struct sym_line *line;
107 struct buffer_linelabel
110 struct symbol *label;
118 struct graph_edge **edges;
128 struct graph_edge *prev;
129 struct graph_edge *next;
130 struct graph_node *n1;
131 struct graph_node *n2;
133 struct symbol *label;
134 struct sym_line *line;
137 struct graph_node *anode;
138 struct graph_node *bnode; // DEBUG PRINT
145 struct graph_edge *first;
150 struct request *request;
155 // FIXME: Replace with clist?
156 struct placement_link *map_links;
157 struct individual *individual;
160 struct placement_link
162 struct map_placement *mp;
163 struct placement_link *next;
168 struct placement *placement;
169 struct map_placement *next;
170 struct map_placement *prev;
175 // FIXME: Replace with clist?
176 struct map_placement *placement;
181 struct placement *placements;
182 struct map_part **map;
186 void labeller_init(void);
187 void labeller_add_point(struct symbol *sym, struct osm_object *object, z_index_t zindex);
188 void labeller_add_line(struct symbol *sym, z_index_t zindex);
189 void labeller_label(void);
190 void labeller_add_linelabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);
191 void labeller_add_arealabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);