source: trunk/osm05.h @ 7

Last change on this file since 7 was 7, checked in by marius, 6 years ago

bugfix and updates

  • Property svn:eol-style set to native
  • Property svn:keywords set to "Date Author Id Revision HeadURL"
  • Property svn:mime-type set to text/plain
File size: 2.1 KB
Line 
1/*
2 * Memphis - Cairo Rederer for OSM in C
3 * Copyright (C) 2008  <marius.rieder@durchmesser.ch>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software Foundation,
17 * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 */
19
20#ifndef OSM05_H
21#define OSM05_H
22
23typedef struct _osmTag osmTag;
24struct _osmTag {
25        char *key;
26        char *value;
27        osmTag *next;
28    };
29   
30typedef struct _osmNode osmNode;
31   
32struct _osmNode {
33        int id;
34        float lat;
35        float lon;
36        short int layer;
37        osmTag *tag;
38        osmNode *next;
39    };
40   
41typedef struct _osmNd osmNd;
42
43struct _osmNd {
44        osmNode *node;
45        osmNd   *next;
46    };
47   
48typedef struct _osmWay osmWay;
49
50struct _osmWay {
51        int id;
52        short int layer;
53        osmTag  *tag;
54        osmNd   *nd;
55        osmWay  *next;
56    };
57
58typedef struct _osmMember osmMember;
59
60struct _osmMember {
61        osmNode     *node;
62        osmWay      *way;
63        char        *role;
64        osmMember   *next;
65    };
66
67typedef struct _osmRelation omsRelation;
68
69struct _osmRelation {
70        int         id;
71        osmTag      *tag;
72        osmMember   *member;
73    };
74
75typedef struct _osmFile osmFile;
76struct _osmFile {
77        osmNode     *nodes;
78        osmWay      *ways;
79        float       minlat;
80        float       minlon;
81        float       maxlat;
82        float       maxlon;
83    };
84
85/*
86 * Prototypes
87 */
88osmFile* osmRead(char *filename);
89
90#endif /* OSM05_H */
91
92/*
93 * vim: expandtab shiftwidth=4:
94 */
Note: See TracBrowser for help on using the repository browser.