1 #ifndef _LEO_LABELLER_H
2 #define _LEO_LABELLER_H
41 enum request_type type;
43 struct variant *variants;
48 struct request request;
58 struct request_segment
60 struct request request;
61 struct request_line *rl;
71 struct request_section
73 struct request request;
75 struct request_segment *segments;
80 struct request request;
83 struct request_section *sections;
88 struct request request;
89 struct osm_multipolygon *o;
97 struct sym_line *line;
101 struct buffer_linelabel
104 struct symbol *label;
112 struct graph_edge **edges;
122 struct graph_edge *prev;
123 struct graph_edge *next;
124 struct graph_node *n1;
125 struct graph_node *n2;
127 struct symbol *label;
128 struct sym_line *line;
131 struct graph_node *anode;
132 struct graph_node *bnode; // DEBUG PRINT
139 struct graph_edge *first;
144 struct request *request;
150 // FIXME: Replace with clist?
151 struct placement_link *map_links;
152 struct individual *individual;
155 struct placement_link
157 struct map_placement *mp;
158 struct placement_link *next;
163 struct placement *placement;
164 struct map_placement *next;
165 struct map_placement *prev;
170 // FIXME: Replace with clist?
171 struct map_placement *placement;
176 struct placement *placements;
177 struct map_part **map;
181 void labeller_init(void);
182 void labeller_add_point(struct symbol *sym, struct osm_object *object, z_index_t zindex);
183 void labeller_add_line(struct symbol *sym, z_index_t zindex);
184 void labeller_label(void);
185 void labeller_add_linelabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);
186 void labeller_add_arealabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);