1 #ifndef __LOCAL_PROTO_H__ 2 #define __LOCAL_PROTO_H__ 3 4 #include <gdal.h> 5 #include <math.h> 6 /* is it safe to #include <float.h> ? */ 7 8 /* range limits */ 9 /* 10 GDAL data type minimum maximum 11 12 Byte 0 255 13 UInt16 0 65,535 14 Int16, CInt16 -32,768 32,767 15 UInt32 0 4,294,967,295 16 Int32, CInt32 -2,147,483,648 2,147,483,647 17 Float32, CFloat32 -3.4E38 3.4E38 18 Float64, CFloat64 -1.79E308 1.79E308 19 */ 20 21 /* copied from limits.h, checked against gdal-1.6.0/gcore/gdalrasterband.cpp */ 22 #define TYPE_BYTE_MIN 0 23 #define TYPE_BYTE_MAX 255 24 #define TYPE_INT16_MIN (-32768) 25 #define TYPE_INT16_MAX 32767 26 #define TYPE_UINT16_MIN 0 27 #define TYPE_UINT16_MAX 65535 28 #define TYPE_UINT32_MIN 0 29 #define TYPE_UINT32_MAX 4294967295U 30 #define TYPE_INT32_MIN (-TYPE_INT32_MAX - 1) 31 #define TYPE_INT32_MAX 2147483647 32 33 /* new systems: FLT_MAX, DBL_MAX, old systems: MAXFLOAT, MAXDOUBLE, fallback: 3.4E38 and 1.79E308f */ 34 #ifdef FLT_MAX 35 #define TYPE_FLOAT32_MIN (-FLT_MAX) 36 #define TYPE_FLOAT32_MAX FLT_MAX 37 #elif defined(MAX_FLOAT) 38 #define TYPE_FLOAT32_MIN (-MAXFLOAT) 39 #define TYPE_FLOAT32_MAX MAXFLOAT 40 #else 41 /* formula from float.h */ 42 #define TYPE_FLOAT32_MIN (float)(-((1 + (1 - pow(2, -23))) * pow(2, 127))) 43 #define TYPE_FLOAT32_MAX (float)((1 + (1 - pow(2, -23))) * pow(2, 127)) 44 #endif 45 46 #ifdef DBL_MAX 47 #define TYPE_FLOAT64_MIN (-DBL_MAX) 48 #define TYPE_FLOAT64_MAX DBL_MAX 49 #elif defined(MAXDOUBLE) 50 #define TYPE_FLOAT64_MIN (-MAXDOUBLE) 51 #define TYPE_FLOAT64_MAX MAXDOUBLE 52 #else 53 /* formula from float.h */ 54 #define TYPE_FLOAT64_MIN (-((1 + (1 - pow(2, -52))) * pow(2, 1023))) 55 #define TYPE_FLOAT64_MAX ((1 + (1 - pow(2, -52))) * pow(2, 1023)) 56 #endif 57 58 #define GRASS_MAX_COLORS TYPE_UINT16_MAX /* ok? */ 59 60 /* export_band.c */ 61 int export_band(GDALDatasetH, int, const char *, 62 const char *, struct Cell_head *, RASTER_MAP_TYPE, 63 double, int, int, int); 64 int exact_checks(GDALDataType, const char *, const char *, 65 struct Cell_head *, RASTER_MAP_TYPE, double, 66 const char *, int); 67 68 /* attr.c */ 69 int export_attr(GDALDatasetH, int, const char *, 70 const char *, RASTER_MAP_TYPE); 71 72 #endif /* __LOCAL_PROTO_H__ */ 73