1 #ifndef _LEO_LABELLER_H
2 #define _LEO_LABELLER_H
39 enum request_type type;
41 struct variant *variants;
46 struct request request;
56 struct request_segment
58 struct request request;
59 struct request_line *rl;
69 struct request_section
71 struct request request;
73 struct request_segment *segments;
78 struct request request;
81 struct request_section *sections;
86 struct request request;
87 struct osm_multipolygon *o;
95 struct sym_line *line;
99 struct buffer_linelabel
102 struct symbol *label;
110 struct graph_edge **edges;
120 struct graph_edge *prev;
121 struct graph_edge *next;
122 struct graph_node *n1;
123 struct graph_node *n2;
125 struct symbol *label;
126 struct sym_line *line;
129 struct graph_node *anode;
130 struct graph_node *bnode; // DEBUG PRINT
137 struct graph_edge *first;
142 struct request *request;
147 // FIXME: Replace with clist?
148 struct placement_link *map_links;
149 struct individual *individual;
152 struct placement_link
154 struct map_placement *mp;
155 struct placement_link *next;
160 struct placement *placement;
161 struct map_placement *next;
162 struct map_placement *prev;
167 // FIXME: Replace with clist?
168 struct map_placement *placement;
173 struct placement *placements;
174 struct map_part **map;
178 void labeller_init(void);
179 void labeller_add_point(struct symbol *sym, struct osm_object *object, z_index_t zindex);
180 void labeller_add_line(struct symbol *sym, z_index_t zindex);
181 void labeller_label(void);
182 void labeller_add_linelabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);
183 void labeller_add_arealabel(struct symbol *sym, struct osm_object *o, z_index_t zindex);