Diff of /trunk/src/osm.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 46 by achadwick, Mon Feb 2 20:59:14 2009 UTC revision 154 by harbaum, Tue Mar 31 06:31:53 2009 UTC
# Line 27  Line 27 
27  #define OSM_FLAG_NEW      (1<<2)  #define OSM_FLAG_NEW      (1<<2)
28  #define OSM_FLAG_HIDDEN   (1<<3)  #define OSM_FLAG_HIDDEN   (1<<3)
29    
30  typedef gulong item_id_t;  /* item_id_t needs to be signed as osm2go uses negative ids for items */
31    /* not yet registered with the main osm database */
32    typedef glong item_id_t;
33    #define G_TYPE_ITEM_ID_T G_TYPE_LONG
34    
35  #define ID_ILLEGAL  ((item_id_t)0)  #define ID_ILLEGAL  ((item_id_t)0)
36    
# Line 164  typedef enum { Line 167  typedef enum {
167    ILLEGAL=0, NODE, WAY, RELATION, NODE_ID, WAY_ID, RELATION_ID    ILLEGAL=0, NODE, WAY, RELATION, NODE_ID, WAY_ID, RELATION_ID
168  } type_t;  } type_t;
169    
170    typedef struct {
171      type_t type;
172      union {
173        node_t *node;
174        way_t *way;
175        relation_t *relation;
176        void *ptr;
177      };
178    } object_t;
179    
180  typedef struct member_s {  typedef struct member_s {
181    type_t type;    type_t type;
182    char   *role;    char   *role;
# Line 172  typedef struct member_s { Line 185  typedef struct member_s {
185      node_t *node;      node_t *node;
186      way_t *way;      way_t *way;
187      relation_t *relation;      relation_t *relation;
188        void *ptr;
189      item_id_t id;      item_id_t id;
190    };    };
191    
# Line 248  way_chain_t *osm_node_to_way(osm_t *osm, Line 262  way_chain_t *osm_node_to_way(osm_t *osm,
262  /* ----------- edit functions ----------- */  /* ----------- edit functions ----------- */
263  node_t *osm_node_new(osm_t *osm, gint x, gint y);  node_t *osm_node_new(osm_t *osm, gint x, gint y);
264  void osm_node_attach(osm_t *osm, node_t *node);  void osm_node_attach(osm_t *osm, node_t *node);
265    void osm_node_restore(osm_t *osm, node_t *node);
266  way_chain_t *osm_node_delete(osm_t *osm, struct icon_s **icon, node_t *node,  way_chain_t *osm_node_delete(osm_t *osm, struct icon_s **icon, node_t *node,
267                               gboolean permanently, gboolean affect_ways);                               gboolean permanently, gboolean affect_ways);
268  void osm_way_delete(osm_t *osm, struct icon_s **icon, way_t *way,  void osm_way_delete(osm_t *osm, struct icon_s **icon, way_t *way,
# Line 260  gboolean osm_position_within_bounds(osm_ Line 275  gboolean osm_position_within_bounds(osm_
275  item_id_t osm_new_way_id(osm_t *osm);  item_id_t osm_new_way_id(osm_t *osm);
276  gboolean osm_way_ends_with_node(way_t *way, node_t *node);  gboolean osm_way_ends_with_node(way_t *way, node_t *node);
277    
278  void osm_way_revert(way_t *way);  void osm_way_reverse(way_t *way);
279    guint osm_way_reverse_direction_sensitive_tags(way_t *way);
280    guint osm_way_reverse_direction_sensitive_roles(osm_t *osm, way_t *way);
281    
282  void osm_node_remove_from_relation(osm_t *osm, node_t *node);  void osm_node_remove_from_relation(osm_t *osm, node_t *node);
283  void osm_way_remove_from_relation(osm_t *osm, way_t *way);  void osm_way_remove_from_relation(osm_t *osm, way_t *way);
# Line 271  void osm_way_rotate(way_t *way, gint off Line 288  void osm_way_rotate(way_t *way, gint off
288    
289  tag_t *osm_tags_copy(tag_t *tag, gboolean update_creator);  tag_t *osm_tags_copy(tag_t *tag, gboolean update_creator);
290    
291    char *osm_type_string(type_t type);
292    char *osm_id_string(type_t type, void *object);
293    char *osm_object_string(type_t type, void *object);
294    tag_t *osm_object_get_tags(type_t type, void *object);
295    
296    relation_t *osm_relation_new(void);
297    void osm_relation_free(relation_t *relation);
298    void osm_relation_attach(osm_t *osm, relation_t *relation);
299    void osm_relation_delete(osm_t *osm, relation_t *relation,
300                             gboolean permanently);
301    gint osm_relation_members_num(relation_t *relation);
302    
303    void osm_object_set_flags(object_t *map_item, int set, int clr);
304    
305  #endif /* OSM_H */  #endif /* OSM_H */
306    
307  // vim:et:ts=8:sw=2:sts=2:ai  // vim:et:ts=8:sw=2:sts=2:ai

Legend:
Removed from v.46  
changed lines
  Added in v.154