source: trunk/osm05.h @ 4

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

renderer redesigned

  • 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 _osmBounds osmBounds;
24
25struct _osmBounds {
26        float minlat;
27        float minlon;
28        float maxlat;
29        float maxlon;
30    };
31
32typedef struct _osmTag osmTag;
33
34struct _osmTag {
35        char *key;
36        char *value;
37        osmTag *next;
38    };
39   
40typedef struct _osmNode osmNode;
41   
42struct _osmNode {
43        int id;
44        float lat;
45        float lon;
46        short int layer;
47        osmTag *tag;
48        osmNode *next;
49    };
50   
51typedef struct _osmNd osmNd;
52
53struct _osmNd {
54        osmNode *node;
55        osmNd   *next;
56    };
57   
58typedef struct _osmWay osmWay;
59
60struct _osmWay {
61        int id;
62        short int layer;
63        osmTag  *tag;
64        osmNd   *nd;
65        osmWay  *next;
66    };
67
68typedef struct _osmMember osmMember;
69
70struct _osmMember {
71        osmNode     *node;
72        osmWay      *way;
73        char        *role;
74        osmMember   *next;
75    };
76
77typedef struct _osmRelation omsRelation;
78
79struct _osmRelation {
80        int         id;
81        osmTag      *tag;
82        osmMember   *member;
83    };
84
85typedef struct _osmFile osmFile;
86struct _osmFile {
87        osmBounds   *bounds;
88        osmNode     *nodes;
89        osmWay      *ways;
90    };
91
92/*
93 * Prototypes
94 */
95osmFile* osmRead(char *filename);
96
97#endif /* OSM05_H */
98
99/*
100 * vim: expandtab shiftwidth=4:
101 */
Note: See TracBrowser for help on using the repository browser.