36 #if !defined __GNUC__ || __GNUC__ < 2
38 #define __attribute__(x)
42 =
"GRASS GNU GPL licensed Software";
47 #define GIS_H_VERSION GRASS_HEADERS_VERSION
51 #define GIS_H_DATE GRASS_HEADERS_DATE
53 #define G_gisinit(pgm) G__gisinit(GIS_H_VERSION, (pgm))
54 #define G_no_gisinit() G__no_gisinit(GIS_H_VERSION)
66 #if (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64) || (__APPLE__ && __LP64__)
67 #define PRI_OFF_T "lld"
69 #define PRI_OFF_T "ld"
75 # define HOST_NEWLINE "\r\n"
77 # define HOST_NEWLINE "\n"
81 #if __GNUC__ && (__GNUC__ >= 3 && __GNUC_MINOR__ >= 4)
82 # define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
84 # define WARN_UNUSED_RESULT
90 #define U_UNDEFINED -1
94 #define U_KILOMETERS 3
102 #define U_YEARS DATETIME_YEAR
103 #define U_MONTHS DATETIME_MONTH
104 #define U_DAYS DATETIME_DAY
105 #define U_HOURS DATETIME_HOUR
106 #define U_MINUTES DATETIME_MINUTE
107 #define U_SECONDS DATETIME_SECOND
110 #define PROJECTION_XY 0
112 #define PROJECTION_UTM 1
114 #define PROJECTION_SP 2
116 #define PROJECTION_LL 3
118 #define PROJECTION_OTHER 99
120 #define PROJECTION_FILE "PROJ_INFO"
121 #define UNIT_FILE "PROJ_UNITS"
122 #define EPSG_FILE "PROJ_EPSG"
123 #define WKT_FILE "PROJ_WKT"
124 #define SRID_FILE "PROJ_SRID"
127 #define CONFIG_DIR "GRASS8"
129 #define CONFIG_DIR ".grass8"
135 #define MAX(a, b) ((a) > (b) ? (a) : (b))
140 #define MIN(a, b) ((a) < (b) ? (a) : (b))
144 #define M_PI 3.14159265358979323846
147 #define M_PI_2 1.57079632679489661923
150 #define M_PI_4 0.78539816339744830962
153 #define M_R2D 57.295779513082320877
156 #define M_D2R 0.017453292519943295769
159 #define GRASS_EPSILON 1.0e-15
162 #define G_VAR_GISRC 0
163 #define G_VAR_MAPSET 1
166 #define G_GISRC_MODE_FILE 0
167 #define G_GISRC_MODE_MEMORY 1
170 #define TYPE_INTEGER 1
171 #define TYPE_DOUBLE 2
172 #define TYPE_STRING 3
177 #define GNAME_MAX 256
178 #define GMAPSET_MAX 256
180 #define GPATH_MAX 4096
183 #define GBASENAME_SEP "_"
190 #define serialize_int32_le(buf, x) do { \
191 (buf)[0] = ((x) >> 0) & 0xFF; \
192 (buf)[1] = ((x) >> 8) & 0xFF; \
193 (buf)[2] = ((x) >> 16) & 0xFF; \
194 (buf)[3] = ((x) >> 24) & 0xFF; \
198 #define deserialize_int32_le(buf) (((buf)[0] << 0) | \
204 #define serialize_int32_be(buf, x) do { \
205 (buf)[0] = ((x) >> 24) & 0xFF; \
206 (buf)[1] = ((x) >> 16) & 0xFF; \
207 (buf)[2] = ((x) >> 8) & 0xFF; \
208 (buf)[3] = ((x) >> 0) & 0xFF; \
212 #define deserialize_int32_be(buf) (((buf)[0] << 24) | \
218 #define GRASS_DIRSEP '/'
220 # define HOST_DIRSEP '\\'
221 # define G_DEV_NULL "NUL:"
223 # define HOST_DIRSEP '/'
224 # define G_DEV_NULL "/dev/null"
370 #define G_INFO_FORMAT_STANDARD 0
371 #define G_INFO_FORMAT_GUI 1
372 #define G_INFO_FORMAT_SILENT 2
373 #define G_INFO_FORMAT_PLAIN 3
376 #define G_ICON_CROSS 0
378 #define G_ICON_ARROW 2
381 #define DEFAULT_FG_COLOR "black"
382 #define DEFAULT_BG_COLOR "white"
383 #define DEFAULT_COLOR_TABLE "viridis"
386 #define G_FATAL_EXIT 0
387 #define G_FATAL_PRINT 1
388 #define G_FATAL_RETURN 2
391 #define ENDIAN_LITTLE 0
393 #define ENDIAN_OTHER 2
399 #define GV_KEY_COLUMN "cat"
619 #include <sys/types.h>
621 #elif defined(__MINGW32__)
623 #elif HAVE_LONG_LONG_INT
625 #elif HAVE_LARGEFILES
628 #error "no 64 bit integer available"
STD_OPT
Standard option identifiers (enum)
@ G_OPT_R_BASENAME_OUTPUT
@ G_OPT_R3_TILE_DIMENSION
STD_FLG
Standard flag identifiers (enum)
2D/3D raster map header (used also for region)
int cols3
Number of columns for 3D data.
double ew_res
Resolution - east to west cell size for 2D data.
double north
Extent coordinates (north)
double bottom
Extent coordinates (bottom) - 3D data.
int compressed
Compression mode (raster header only)
int format
Max number of bytes per raster data value minus 1 (raster header only)
int zone
Projection zone (UTM)
int depths
number of depths for 3D data
double east
Extent coordinates (east)
double ew_res3
Resolution - east to west cell size for 3D data.
double ns_res
Resolution - north to south cell size for 2D data.
double ns_res3
Resolution - north to south cell size for 3D data.
double top
Extent coordinates (top) - 3D data.
int rows3
Number of rows for 3D data.
int rows
Number of rows for 2D data.
int cols
Number of columns for 2D data.
double south
Extent coordinates (south)
double tb_res
Resolution - top to bottom cell size for 3D data.
double west
Extent coordinates (west)
struct _Color_Info_ fixed
struct _Color_Info_ modular
Structure that stores flag info.
Structure that stores module info.
Structure that stores option information.
int(* checker)(const char *)
const char * descriptions
const char * guidependency
struct _Color_Info_::@3 lookup
struct _Color_Info_::@4 fp_lookup
struct _Color_Rule_ * rules
struct _Color_Rule_ ** rules
struct _Color_Rule_ * prev
struct _Color_Rule_ * next
struct _Color_Value_ low high
int n_values
Number of values in the list.
int * value
Array of values.
int alloc_values
Allocated space for values.