]> mj.ucw.cz Git - leo.git/blobdiff - labeller.h
Mix of changes O:)
[leo.git] / labeller.h
index fae5f21b643088ab2800b7791af7bec4d4a0cdf7..8f1b0fad9637b17c5176176878c087422e8a9bd0 100644 (file)
@@ -11,6 +11,9 @@ enum label_type
 enum request_type
 {
   REQUEST_POINT,
+  REQUEST_AREALABEL,
+  REQUEST_LINELABEL,
+  REQUEST_SEGMENT,
 };
 
 enum term_cond
@@ -50,7 +53,7 @@ struct request_point
 {
   struct request request;
   struct symbol *sym;
-  struct osm_object *object;
+  struct osm_object *object; // FIXME: Linked also by sym
   z_index_t zindex;
   double x;
   double y;
@@ -70,6 +73,8 @@ struct request_segment
   double k;
   struct sym_line *sym;
   struct point_variant *variant;
+  struct sym_text *text;
+  z_index_t zindex;
 };
 
 struct request_line
@@ -86,6 +91,8 @@ struct request_area
 {
   struct request request;
   struct osm_multipolygon *o;
+  struct sym_text *sym;
+  struct point_variant *text_variant;
   z_index_t zindex;
 };
 
@@ -105,6 +112,7 @@ struct buffer_linelabel
 struct graph_node
 {
   osm_id_t id;
+  struct osm_node *o;
   struct graph_edge **edges;
 };
 
@@ -121,6 +129,7 @@ struct graph_edge
   uns longline;
   struct sym_text *text;
   struct sym_line *sym;
+  z_index_t zindex;
 };
 
 struct longline
@@ -177,13 +186,14 @@ struct individual **perform_crossover(struct individual *parent1, struct individ
 void perform_mutation(struct individual *individual);
 
 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);
 
-void get_closure(struct placement **closure, struct placement *placement, struct individual *parent1, struct individual *parent2);
+struct placement **get_closure(struct placement *placement, struct individual *parent1, struct individual *parent2);
 void copy_symbols(struct placement **closure, struct individual *parent, struct individual *child);
 void move_symbol(struct placement *p);
 void move_symbol_point(struct placement *p);
@@ -194,4 +204,8 @@ void filter(struct placement **list, bool *pred);
 int flip(int a, int b);
 double randdouble(void);
 
+void cleanup(void);
+
+void copy_individual(struct individual *src, struct individual *dest);
+
 #endif