]> mj.ucw.cz Git - leo.git/blobdiff - labeller.h
Labelling: Using slope for segments
[leo.git] / labeller.h
index c16c43dd11518a40c37b82733c2f08e4d4aa74a9..f4cb2d357145c7cda40ba759c1b2ff707dbacef6 100644 (file)
@@ -27,22 +27,18 @@ enum term_cond
   TERM_COND_ITERATIONS,
 };
 
-struct point_variant
+struct variant
 {
   int width;
   int height;
   bool *bitmap;
 };
 
-struct line_variant
-{
-  bool *masks;
-};
-
 struct request
 {
   enum request_type type;
   int ind;
+  struct variant *variants;
 };
 
 struct request_point
@@ -55,7 +51,6 @@ struct request_point
   double offset_x;
   double offset_y;
   int num_variants;
-  struct point_variant *variants;
 };
 
 struct request_segment
@@ -66,9 +61,8 @@ struct request_segment
   double y1;
   double x2;
   double y2;
-  double angle;
+  double slope;
   struct symbol *label;
-  struct point_variant *variant;
   z_index_t zindex;
 };
 
@@ -84,7 +78,6 @@ struct request_line
   struct request request;
   struct symbol *line;
   int num_variants;
-  struct line_variant *variants;
   struct request_section *sections;
 };
 
@@ -93,7 +86,6 @@ struct request_area
   struct request request;
   struct osm_multipolygon *o;
   struct symbol *label;
-  struct point_variant *variants;
   z_index_t zindex;
   double cx, cy;
 };
@@ -152,10 +144,28 @@ struct placement
   double y;
   int variant_used;
   bool processed;
+  // FIXME: Replace with clist?
+  struct placement_link *map_links;
+  struct individual *individual;
+};
+
+struct placement_link
+{
+  struct map_placement *mp;
+  struct placement_link *next;
+};
+
+struct map_placement
+{
+  struct placement *placement;
+  struct map_placement *next;
+  struct map_placement *prev;
 };
 
 struct map_part
 {
+  // FIXME: Replace with clist?
+  struct map_placement *placement;
 };
 
 struct individual