]> mj.ucw.cz Git - leo.git/blobdiff - sym.h
Průvodce: More styling
[leo.git] / sym.h
diff --git a/sym.h b/sym.h
index e846a790df44b6205416111feef6e691476fe5ed..23be8d225f83b502ba662726d2585ee3422bddac 100644 (file)
--- a/sym.h
+++ b/sym.h
@@ -19,6 +19,7 @@ enum symbolizer_type {
   SYMBOLIZER_AREA,
   SYMBOLIZER_TEXT,
   SYMBOLIZER_LINEIMG,
+  SYMBOLIZER_DISABLED,
   SYMBOLIZER_MAX,
 };
 
@@ -33,6 +34,8 @@ struct symbolizer {
   void (*draw)(struct symbol *sym, struct svg *svg);
   void (*gen)(struct osm_object *o, struct style_info *si, struct svg *svg);
   void (*init)(void);
+  bool (*same_p)(struct symbol *x, struct symbol *y);
+  struct symbol *(*clone)(struct symbol *src);
 };
 
 extern struct mempool *sym_mp;
@@ -55,8 +58,12 @@ void sym_init(void);
 void *sym_new(enum symbolizer_type type, struct osm_object *o, size_t size);
 void sym_plan(struct symbol *sym, z_index_t zindex);
 void sym_draw_all(struct svg *svg);
+void sym_for_all_planned(void (*callback)(struct symbol *s, z_index_t zindex));
 void sym_from_style(struct osm_object *o, struct style_results *sr, struct svg *svg);
 z_index_t sym_zindex(struct osm_object *o, struct style_info *si, double default_mzi);
+bool sym_same_attrs_p(struct symbol *x, struct symbol *y);
+void sym_disable(struct symbol *s);
+struct symbol *sym_clone(struct symbol *s);
 
 /* sym-point.c handles point symbols and icons */
 
@@ -132,6 +139,7 @@ struct sym_text {
   color_t text_color;
   double x;
   double y;
+  double rotate;                       // Rotation in degrees CCW
   struct text_font *font;
   double opacity;
   color_t halo_color;