~ubuntu-branches/ubuntu/vivid/grass/vivid-proposed

« back to all changes in this revision

Viewing changes to include/vect/dig_defines.h

  • Committer: Package Import Robot
  • Author(s): Bas Couwenberg
  • Date: 2015-02-20 23:12:08 UTC
  • mfrom: (8.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20150220231208-1u6qvqm84v430b10
Tags: 7.0.0-1~exp1
* New upstream release.
* Update python-ctypes-ternary.patch to use if/else instead of and/or.
* Drop check4dev patch, rely on upstream check.
* Add build dependency on libpq-dev to grass-dev for libpq-fe.h.
* Drop patches applied upstream, refresh remaining patches.
* Update symlinks for images switched from jpg to png.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#define GRASS_OK    0
2
 
#define GRASS_ERR (-1)
3
 
 
4
 
#define GV_FATAL_EXIT    0
5
 
#define GV_FATAL_PRINT   1
6
 
#define GV_FATAL_RETURN  2
7
 
 
8
 
#define GRASS_VECT_DIRECTORY    "vector"        /* name of vector directory */
9
 
#define GRASS_VECT_FRMT_ELEMENT "frmt"  /* format description, data location */
10
 
#define GRASS_VECT_COOR_ELEMENT "coor"  /* coordinates */
11
 
#define GRASS_VECT_HEAD_ELEMENT "head"  /* header information */
12
 
#define GRASS_VECT_DBLN_ELEMENT "dbln"  /* link to database */
13
 
#define GRASS_VECT_HIST_ELEMENT "hist"  /* history file */
14
 
#define GV_TOPO_ELEMENT "topo"  /* topology */
15
 
#define GV_SIDX_ELEMENT "sidx"  /* spatial index */
16
 
#define GV_CIDX_ELEMENT "cidx"  /* category index */
17
 
 
18
 
#define ENDIAN_LITTLE 0
19
 
#define ENDIAN_BIG    1
20
 
#define ENDIAN_OTHER  2
21
 
 
22
 
/* sizes of types used in portable format (different names used in
23
 
 * Vlib/ and diglib/ for the same thing) */
 
1
/*!
 
2
  \file include/vect/dig_defines.h
 
3
 
 
4
  Defines for diglib (part of vector library)
 
5
*/
 
6
 
 
7
/*! \brief Name of vector directory */
 
8
#define GV_DIRECTORY    "vector"
 
9
/*! \brief Format description, data location (OGR) */
 
10
#define GV_FRMT_ELEMENT "frmt"
 
11
/*! \brief Native format, coordinates */
 
12
#define GV_COOR_ELEMENT "coor"
 
13
/*! \brief Native format, header information */
 
14
#define GV_HEAD_ELEMENT "head"
 
15
/*! \brief Native format, link to database */
 
16
#define GV_DBLN_ELEMENT "dbln"
 
17
/*! \brief Native format, history file */
 
18
#define GV_HIST_ELEMENT "hist"
 
19
/*! \brief Native format, topology file */
 
20
#define GV_TOPO_ELEMENT "topo"
 
21
/*! \brief Native format, spatial index */
 
22
#define GV_SIDX_ELEMENT "sidx"
 
23
/*! \brief Native format, category index */
 
24
#define GV_CIDX_ELEMENT "cidx"
 
25
/*! \brief External format (OGR), feature index */
 
26
#define GV_FIDX_ELEMENT "fidx"
 
27
/*! \brief Color table */
 
28
#define GV_COLR_ELEMENT "colr"
 
29
/*! \brief Name of directory for alternative color tables */
 
30
#define GV_COLR2_DIRECTORY "vcolr2"
 
31
/*! \brief Name of the timestamp file */
 
32
#define GV_TIMESTAMP_ELEMENT "timestamp"
 
33
 
 
34
/*! \brief Sizes of types used in portable format (different names used in
 
35
  Vlib/ and diglib/ for the same thing)
 
36
 
 
37
  Assumptions:
 
38
   - double =    8 byte IEEE
 
39
   -  float =    4 byte IEEE
 
40
   -   long =    4 byte int
 
41
   -  short =    2 byte int
 
42
  
 
43
  \todo To be moved to gislib?
 
44
*/
24
45
#define PORT_DOUBLE 8
25
46
#define PORT_FLOAT  4
26
47
#define PORT_LONG   4
27
48
#define PORT_INT    4
28
49
#define PORT_SHORT  2
29
50
#define PORT_CHAR   1
 
51
#define PORT_OFF_T  8
30
52
 
31
 
/* replace by PORT_* in Vlib later and remove : */
 
53
/*! \brief replace by PORT_* in Vlib later and remove :
 
54
  
 
55
  \todo To be removed ?
 
56
*/
32
57
#define DBL_SIZ  8
33
58
#define FLT_SIZ  4
34
59
#define LNG_SIZ  4
35
60
#define SHRT_SIZ 2
36
61
 
37
 
/*
38
 
 ** assumptions:
39
 
 **    double =    8 byte IEEE
40
 
 **    float  =    4 byte IEEE
41
 
 **    long   =    4 byte int
42
 
 **    short  =    2 byte int
43
 
 **
44
 
 */
 
62
/*! \brief Limits for portable types
45
63
 
46
 
/* Limits for portable types - I am not sure if OK */
 
64
  \todo To be moved to gislib?
 
65
*/
47
66
#define PORT_DOUBLE_MAX 1.7976931348623157e+308
48
67
#define PORT_DOUBLE_MIN 2.2250738585072014e-308
49
68
#define PORT_FLOAT_MAX  3.40282347e+38F
57
76
#define PORT_CHAR_MAX   127
58
77
#define PORT_CHAR_MIN   (-128)
59
78
 
60
 
/* Geometry data formats supported by lib */
61
 
/* Don't change GV_FORMAT_* values, this order is hardcoded in lib */
62
 
#define GV_FORMAT_NATIVE   0    /* grass native format */
63
 
#define GV_FORMAT_OGR      1    /* OGR format */
64
 
 
65
 
/* How may tables linked to map */
66
 
#define GV_1TABLE  0            /* One table */
67
 
#define GV_MTABLE  1            /* More, many, multi */
68
 
 
 
79
/*! \brief Geometry data formats supported by lib
 
80
  Don't change GV_FORMAT_* values, this order is hardcoded in lib
 
81
*/
 
82
/*! \brief GRASS native format */
 
83
#define GV_FORMAT_NATIVE           0
 
84
/*! \brief OGR format */
 
85
#define GV_FORMAT_OGR              1
 
86
/*! \brief OGR format (direct access) */
 
87
#define GV_FORMAT_OGR_DIRECT       2
 
88
/*! \brief PostGIS format */
 
89
#define GV_FORMAT_POSTGIS          3
 
90
 
 
91
/*! \brief GRASS topology - native format */
 
92
#define GV_TOPO_NATIVE             0
 
93
/*! \brief Pseudo-topology - external simple features (OGR/PostGIS) format */
 
94
#define GV_TOPO_PSEUDO             1
 
95
/*! \brief PostGIS topology - external PostGIS format */
 
96
#define GV_TOPO_POSTGIS            2
 
97
 
 
98
/*! \brief One table linked to vector map */
 
99
#define GV_1TABLE  0
 
100
/*! \brief More tables linked to vector map */
 
101
#define GV_MTABLE  1            
 
102
 
 
103
/*! \brief Read-only vector map open mode */
69
104
#define GV_MODE_READ  0
 
105
/*! \brief Write vector map open mode */
70
106
#define GV_MODE_WRITE 1
 
107
/*! \brief Read-write vector map open mode */
71
108
#define GV_MODE_RW    2
72
109
 
 
110
/*! \brief Vector map open code */
73
111
#define VECT_OPEN_CODE   0x5522AA22
 
112
/*! \brief Vector map close code */
74
113
#define VECT_CLOSED_CODE 0x22AA2255
75
114
 
 
115
/*! \brief Vector level - without topology */
76
116
#define LEVEL_1  1
 
117
/*! \brief Vector level - with 2D topology */
77
118
#define LEVEL_2  2
 
119
/*! \brief Vector level - with 3D topology (not implemented yet) */
78
120
#define LEVEL_3  3
79
121
 
80
 
/* Topology level details */
81
 
#define GV_BUILD_NONE  0
82
 
#define GV_BUILD_BASE  1
83
 
#define GV_BUILD_AREAS  2
84
 
#define GV_BUILD_ATTACH_ISLES 3 /* Attach islands to areas */
85
 
#define GV_BUILD_CENTROIDS 4    /* Assign centroids to areas */
86
 
#define GV_BUILD_ALL GV_BUILD_CENTROIDS
 
122
/*! \brief Topology levels - nothing to build */
 
123
#define GV_BUILD_NONE         0
 
124
/*! \brief Topology levels - basic level (without areas and isles) */
 
125
#define GV_BUILD_BASE         1
 
126
/*! \brief Topology levels - build areas */
 
127
#define GV_BUILD_AREAS        2
 
128
/*! \brief Topology levels - attach islands to areas */
 
129
#define GV_BUILD_ATTACH_ISLES 3
 
130
/*! \brief Topology levels - assign centroids to areas */
 
131
#define GV_BUILD_CENTROIDS    4
 
132
/*! \brief Topology levels - build everything (currently same as GV_BUILD_CENTROIDS) */
 
133
#define GV_BUILD_ALL          GV_BUILD_CENTROIDS
87
134
 
 
135
/*! \brief Check if vector map is open */
88
136
#define VECT_OPEN(Map)   (Map->open == VECT_OPEN_CODE)
89
137
 
90
 
/* Memory mode */
 
138
/*! \brief Memory mode */
91
139
#define GV_MEMORY_ALWAYS 1
92
140
#define GV_MEMORY_NEVER  2
93
141
#define GV_MEMORY_AUTO   3
94
142
 
 
143
/*! \brief Coordinates file head size */
95
144
#define GV_COOR_HEAD_SIZE 14
96
145
 
97
146
#define GRASS_V_VERSION       "5.0"
98
 
/* The latest versions of files known by current version of the library. Used for new files */
 
147
/*! \brief The latest versions of files known by current version of
 
148
    the library. Used for new files */
99
149
#define GV_COOR_VER_MAJOR  5
100
150
#define GV_COOR_VER_MINOR  1
101
 
 
102
151
#define GV_TOPO_VER_MAJOR  5
103
 
#define GV_TOPO_VER_MINOR  0
 
152
#define GV_TOPO_VER_MINOR  1
104
153
#define GV_SIDX_VER_MAJOR  5
105
 
#define GV_SIDX_VER_MINOR  0
 
154
#define GV_SIDX_VER_MINOR  1
106
155
#define GV_CIDX_VER_MAJOR  5
107
156
#define GV_CIDX_VER_MINOR  0
108
157
 
109
 
/* The oldest versions of the library, which are capable to read the files created by the current version */
 
158
/*! \brief The oldest versions of the library, which are capable to
 
159
    read the files created by the current version */
110
160
#define GV_COOR_EARLIEST_MAJOR  5
111
161
#define GV_COOR_EARLIEST_MINOR  1
112
 
 
113
162
#define GV_TOPO_EARLIEST_MAJOR  5
114
 
#define GV_TOPO_EARLIEST_MINOR  0
 
163
#define GV_TOPO_EARLIEST_MINOR  1
115
164
#define GV_SIDX_EARLIEST_MAJOR  5
116
 
#define GV_SIDX_EARLIEST_MINOR  0
 
165
#define GV_SIDX_EARLIEST_MINOR  1
117
166
#define GV_CIDX_EARLIEST_MAJOR  5
118
167
#define GV_CIDX_EARLIEST_MINOR  0
119
168
 
 
169
/*! \brief 2D/3D vector data */
120
170
#define WITHOUT_Z       0
121
171
#define WITH_Z          1
122
172
 
123
 
#define DIGITIZER       0
124
 
#define MOUSE           1
125
 
 
126
 
#define ON      1
127
 
#define OFF     0
128
 
 
129
 
/* note this is changed from  3.0  which had 0.04   -dpg */
130
 
#define THRESH_FUDGE   0.03
131
 
 
 
173
/*! \brief Boundary side indicator left/right */
132
174
#define GV_LEFT  1
133
175
#define GV_RIGHT 2
134
176
 
135
 
#define GV_FORWARD 1
 
177
/*! \brief Line direction indicator forward/backward */
 
178
#define GV_FORWARD  1
136
179
#define GV_BACKWARD 2
137
180
 
138
 
/* types used in memory on run time - may change */
 
181
/*! \brief Feature types used in memory on run time (may change) */
139
182
#define GV_POINT      0x01
140
183
#define GV_LINE       0x02
141
184
#define GV_BOUNDARY   0x04
148
191
#define GV_POINTS (GV_POINT | GV_CENTROID )
149
192
#define GV_LINES (GV_LINE | GV_BOUNDARY )
150
193
 
151
 
/* types used in store like 'coor' file or postgis type column - must not change */
 
194
/*! \brief Feature types used in store like 'coor' file or postgis type column (must not change) */
152
195
#define GV_STORE_POINT    1
153
196
#define GV_STORE_LINE     2
154
197
#define GV_STORE_BOUNDARY 3
158
201
#define GV_STORE_AREA     7     /* used in category index file */
159
202
#define GV_STORE_VOLUME   8     /* used in category index file */
160
203
 
161
 
/* Overlay operators */
 
204
/*! \brief Overlay operators */
162
205
#define GV_ON_AND     "AND"     /* intersect */
163
206
#define GV_ON_OVERLAP "OVERLAP"
164
207
 
170
213
 
171
214
typedef enum overlay_operator OVERLAY_OPERATOR;
172
215
 
173
 
#define ESC     033
174
 
 
175
 
#ifdef FOO
176
 
/* these have all turned into global ints.  in digit/globals.h */
177
 
/* colors of unique items on screen */
178
 
#define CLR_LINE        BLUE
179
 
#define CLR_AREA        GREY
180
 
#define CLR_DOT         GREEN
181
 
#define CLR_SITE        GREEN
182
 
 
183
 
#define CLR_LLINE       MAGENTA
184
 
#define CLR_LSITE       AQUA
185
 
#define CLR_LAREA       ORANGE
186
 
 
187
 
#define CLR_AMARK       AQUA
188
 
#define CLR_ALABEL      ORANGE
189
 
#define CLR_LLABEL      MAGENTA
190
 
 
191
 
#define CLR_HIGHLIGHT   YELLOW
192
 
#define CLR_ERASE       BLACK
193
 
#define CLR_UNKNOWN     WHITE
194
 
#define CLR_OVERLAY     WHITE
195
 
 
196
 
#define CLR_0_NODE      GREEN
197
 
#define CLR_1_NODE      ORANGE
198
 
#define CLR_2_NODE      RED
199
 
#endif
200
 
 
201
 
#define GV_NCATS_MAX PORT_INT_MAX       /* maximum number of categories for one element */
202
 
#define GV_FIELD_MAX PORT_INT_MAX       /* maximum field */
203
 
#define GV_CAT_MAX   PORT_INT_MAX       /* maximum category value */
204
 
 
205
 
#define BUILD_PROG "v.build"
 
216
/*! \brief Maximum number of categories for one element */
 
217
#define GV_NCATS_MAX PORT_INT_MAX
 
218
/*! \brief Maximum field */
 
219
#define GV_FIELD_MAX PORT_INT_MAX
 
220
/*! \brief Maximum category value */
 
221
#define GV_CAT_MAX   PORT_INT_MAX
 
222
 
 
223
/*! \brief GRASS ASCII vector format - point format */
 
224
#define GV_ASCII_FORMAT_POINT 0
 
225
/*! \brief GRASS ASCII vector format - standard format */
 
226
#define GV_ASCII_FORMAT_STD   1
 
227
/*! \brief GRASS ASCII vector format - well-known-text format */
 
228
#define GV_ASCII_FORMAT_WKT   2
 
229
 
 
230
/*! \brief Simple feature types
 
231
  
 
232
  Taken from GDAL/OGR library (ogr/ogr_core.h)
 
233
*/
 
234
typedef enum
 
235
{
 
236
    SF_UNKNOWN = 0,                       /* unknown type, non-standard */
 
237
    SF_POINT = 1,                         /* 0-dimensional geometric object */
 
238
    SF_LINESTRING = 2,                    /* 1-dimensional geometric object with linear
 
239
                                             interpolation between Points */
 
240
    SF_POLYGON = 3,                       /* planar 2-dimensional geometric object defined
 
241
                                             by 1 exterior boundary and 0 or more interior
 
242
                                             boundaries */
 
243
    SF_MULTIPOINT = 4,                    /* GeometryCollection of Points */
 
244
    SF_MULTILINESTRING = 5,               /* GeometryCollection of LineStrings */
 
245
    SF_MULTIPOLYGON = 6,                  /* GeometryCollection of Polygons */
 
246
    SF_GEOMETRYCOLLECTION = 7,            /* geometric object that is a collection of 1
 
247
                                             or more geometric objects  */
 
248
    SF_NONE = 100,                        /* non-standard, for pure attribute records */
 
249
    SF_LINEARRING = 101,                  /* non-standard */
 
250
    SF_POINT25D = 0x80000001,             /* 2.5D extension as per 99-402 */
 
251
    SF_LINESTRING25D = 0x80000002,        /* 2.5D extension as per 99-402 */
 
252
    SF_POLYGON25D = 0x80000003,           /* 2.5D extension as per 99-402 */
 
253
    SF_MULTIPOINT25D = 0x80000004,        /* 2.5D extension as per 99-402 */
 
254
    SF_MULTILINESTRING25D = 0x80000005,   /* 2.5D extension as per 99-402 */
 
255
    SF_MULTIPOLYGON25D = 0x80000006,      /* 2.5D extension as per 99-402 */
 
256
    SF_GEOMETRYCOLLECTION25D = 0x80000007 /* 2.5D extension as per 99-402 */
 
257
} SF_FeatureType;
 
258
 
 
259
#define HEADSTR 50
 
260
 
 
261
/*! \brief GRASS-PostGIS data provider - default fid column */
 
262
#define GV_PG_FID_COLUMN      "fid"
 
263
/*! \brief GRASS-PostGIS data provider - default geometry column */
 
264
#define GV_PG_GEOMETRY_COLUMN "geom"