4
#define GV_FATAL_EXIT 0
5
#define GV_FATAL_PRINT 1
6
#define GV_FATAL_RETURN 2
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 */
18
#define ENDIAN_LITTLE 0
20
#define ENDIAN_OTHER 2
22
/* sizes of types used in portable format (different names used in
23
* Vlib/ and diglib/ for the same thing) */
2
\file include/vect/dig_defines.h
4
Defines for diglib (part of vector library)
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"
34
/*! \brief Sizes of types used in portable format (different names used in
35
Vlib/ and diglib/ for the same thing)
38
- double = 8 byte IEEE
43
\todo To be moved to gislib?
24
45
#define PORT_DOUBLE 8
25
46
#define PORT_FLOAT 4
26
47
#define PORT_LONG 4
28
49
#define PORT_SHORT 2
29
50
#define PORT_CHAR 1
31
/* replace by PORT_* in Vlib later and remove : */
53
/*! \brief replace by PORT_* in Vlib later and remove :
39
** double = 8 byte IEEE
40
** float = 4 byte IEEE
62
/*! \brief Limits for portable types
46
/* Limits for portable types - I am not sure if OK */
64
\todo To be moved to gislib?
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)
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 */
65
/* How may tables linked to map */
66
#define GV_1TABLE 0 /* One table */
67
#define GV_MTABLE 1 /* More, many, multi */
79
/*! \brief Geometry data formats supported by lib
80
Don't change GV_FORMAT_* values, this order is hardcoded in lib
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
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
98
/*! \brief One table linked to vector map */
100
/*! \brief More tables linked to vector map */
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
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
115
/*! \brief Vector level - without topology */
117
/*! \brief Vector level - with 2D topology */
119
/*! \brief Vector level - with 3D topology (not implemented yet) */
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
135
/*! \brief Check if vector map is open */
88
136
#define VECT_OPEN(Map) (Map->open == VECT_OPEN_CODE)
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
143
/*! \brief Coordinates file head size */
95
144
#define GV_COOR_HEAD_SIZE 14
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
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
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
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
169
/*! \brief 2D/3D vector data */
120
170
#define WITHOUT_Z 0
129
/* note this is changed from 3.0 which had 0.04 -dpg */
130
#define THRESH_FUDGE 0.03
173
/*! \brief Boundary side indicator left/right */
132
174
#define GV_LEFT 1
133
175
#define GV_RIGHT 2
177
/*! \brief Line direction indicator forward/backward */
136
179
#define GV_BACKWARD 2
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
171
214
typedef enum overlay_operator OVERLAY_OPERATOR;
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
183
#define CLR_LLINE MAGENTA
184
#define CLR_LSITE AQUA
185
#define CLR_LAREA ORANGE
187
#define CLR_AMARK AQUA
188
#define CLR_ALABEL ORANGE
189
#define CLR_LLABEL MAGENTA
191
#define CLR_HIGHLIGHT YELLOW
192
#define CLR_ERASE BLACK
193
#define CLR_UNKNOWN WHITE
194
#define CLR_OVERLAY WHITE
196
#define CLR_0_NODE GREEN
197
#define CLR_1_NODE ORANGE
198
#define CLR_2_NODE RED
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 */
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
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
230
/*! \brief Simple feature types
232
Taken from GDAL/OGR library (ogr/ogr_core.h)
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
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 */
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"