#ifndef _LEO_LABELLER_H
#define _LEO_LABELLER_H
+enum edge_dir
+{
+ DIR_INVALID,
+ DIR_UNSET,
+ DIR_CENTER,
+ DIR_FWD,
+ DIR_BWD,
+};
+
enum request_type
{
REQUEST_INVALID,
REQUEST_POINT,
REQUEST_AREA,
REQUEST_LINE,
+ REQUEST_SECTION,
REQUEST_SEGMENT,
};
struct point_variant
{
- double width;
- double height;
+ int width;
+ int height;
bool *bitmap;
};
struct request_segment
{
struct request request;
+ struct request_line *rl;
double x1;
double y1;
double x2;
double y2;
- double k;
- struct sym_line *sym;
struct symbol *label;
struct point_variant *variant;
z_index_t zindex;
};
+struct request_section
+{
+ struct request request;
+ int num_segments;
+ struct request_segment *segments;
+};
+
struct request_line
{
struct request request;
int num_segments;
struct line_variant *variants;
struct request_segment *segments;
+ struct request_section *sections;
};
struct request_area
osm_id_t id;
double length;
color_t color;
- bool visited;
+ int visited;
struct graph_edge *prev;
struct graph_edge *next;
struct graph_node *n1;
struct symbol *label;
struct sym_line *line;
z_index_t zindex;
- int dir;
+ enum edge_dir dir;
struct graph_node *anode;
struct graph_node *bnode; // DEBUG PRINT
int num; // DEBUG
void init_placement(struct placement *p, struct request *r);
void init_individual(struct individual *i);
-void gen_coords_point(struct placement *p);
-void gen_coords(struct placement *p);
struct map_part **get_parts(struct placement *symbol, struct individual *individual);
int randint(int min, int max);