]> mj.ucw.cz Git - leo.git/blobdiff - osm.h
Průvodce: More styling
[leo.git] / osm.h
diff --git a/osm.h b/osm.h
index cb6b24e9eb7fb139c6a4302b8cd4f3de67f65f37..e9d18a01f745c9cebd74343c7cc90e89a05f2d89 100644 (file)
--- a/osm.h
+++ b/osm.h
@@ -53,6 +53,7 @@ struct osm_node {
    * For UTM, x is easting and y northing.
    * After map scaling, x is horizontal (left-to-right) and y vertical (top-to-bottom) on the paper.
    */
+  struct graph_vertex *vertex;
 };
 
 struct osm_way {
@@ -94,6 +95,8 @@ osm_id_t osm_parse_id(const char *str);
 struct osm_object *osm_obj_find_by_id(enum osm_object_type type, osm_id_t id);
 void osm_obj_add_tag(struct osm_object *o, const char *key, const char *val);
 void osm_obj_add_tag_raw(struct osm_object *o, osm_key_t key, osm_val_t val);
+void osm_obj_set_tag(struct osm_object *o, const char *key, const char *val);
+void osm_obj_set_tag_raw(struct osm_object *o, osm_key_t key, osm_val_t val);
 osm_val_t osm_obj_find_tag(struct osm_object *o, osm_val_t key);
 void osm_obj_dump(struct osm_object *o);
 void osm_obj_warn(struct osm_object *o, const char *msg, ...);
@@ -104,6 +107,18 @@ void osm_ref_add(struct osm_object *parent, clist *list, struct osm_object *son,
 #define OSM_FOR_EACH_BEGIN(_type, _var, _list) CLIST_FOR_EACH(struct osm_ref *, _ref, _list) { _type _var = (_type) _ref->o;
 #define OSM_FOR_EACH_END }
 
+static inline struct osm_object *osm_ref_head(clist *list)
+{
+  struct osm_ref *r = clist_head(list);
+  return r ? r->o : NULL;
+}
+
+static inline struct osm_object *osm_ref_tail(clist *list)
+{
+  struct osm_ref *r = clist_tail(list);
+  return r ? r->o : NULL;
+}
+
 struct osm_node *osm_node_new(osm_id_t id);
 void osm_node_dump(struct osm_node *n);
 void osm_node_dump_all(void);