#ifndef _GG_FORMATS_H
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define _GG_FORMATS_H
#endif
#ifdef __cplusplus
extern "C"
{
#endif
GAIAGEO_DECLARE int gaiaEndianArch (void);
GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE sqlite3_int64 gaiaImportI64 (const unsigned char *p,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExport64 (unsigned char *p, double value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaExportI64 (unsigned char *p, sqlite3_int64 value,
int little_endian,
int little_endian_arch);
GAIAGEO_DECLARE void gaiaOutBufferInitialize (gaiaOutBufferPtr buf);
GAIAGEO_DECLARE void gaiaOutBufferReset (gaiaOutBufferPtr buf);
GAIAGEO_DECLARE void gaiaAppendToOutBuffer (gaiaOutBufferPtr buf,
const char *text);
GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid,
unsigned char **result, int *size);
GAIAGEO_DECLARE void gaiaMakePointZ (double x, double y, double z, int srid,
unsigned char **result, int *size);
GAIAGEO_DECLARE void gaiaMakePointM (double x, double y, double m, int srid,
unsigned char **result, int *size);
GAIAGEO_DECLARE void gaiaMakePointZM (double x, double y, double z,
double m, int srid,
unsigned char **result, int *size);
GAIAGEO_DECLARE void gaiaMakeLine (gaiaGeomCollPtr geom1,
gaiaGeomCollPtr geom2,
unsigned char **result, int *size);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkb (const unsigned
char *blob,
unsigned int
size);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkbEx (const unsigned
char *blob,
unsigned int
size,
int gpkg_mode,
int
gpkg_amphibious);
GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkb (gaiaGeomCollPtr geom,
unsigned char **result,
int *size);
GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkbEx (gaiaGeomCollPtr geom,
unsigned char **result,
int *size, int gpkg_mode);
GAIAGEO_DECLARE void gaiaToCompressedBlobWkb (gaiaGeomCollPtr geom,
unsigned char **result,
int *size);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromWkb (const unsigned char *blob,
unsigned int size);
GAIAGEO_DECLARE void gaiaToWkb (gaiaGeomCollPtr geom,
unsigned char **result, int *size);
GAIAGEO_DECLARE char *gaiaToHexWkb (gaiaGeomCollPtr geom);
GAIAGEO_DECLARE void gaiaToEWKB (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromEWKB (const unsigned char
*in_buffer);
GAIAGEO_DECLARE unsigned char *gaiaParseHexEWKB (const unsigned char
*blob_hex, int *blob_size);
GAIAGEO_DECLARE int
gaiaEwkbGetPoint (gaiaGeomCollPtr geom, unsigned char *blob,
int offset, int blob_size, int endian,
int endian_arch, int dims);
GAIAGEO_DECLARE int
gaiaEwkbGetLinestring (gaiaGeomCollPtr geom, unsigned char *blob,
int offset, int blob_size, int endian,
int endian_arch, int dims);
GAIAGEO_DECLARE int
gaiaEwkbGetPolygon (gaiaGeomCollPtr geom, unsigned char *blob,
int offset, int blob_size, int endian,
int endian_arch, int dims);
GAIAGEO_DECLARE int
gaiaEwkbGetMultiGeometry (gaiaGeomCollPtr geom, unsigned char *blob,
int offset, int blob_size, int endian,
int endian_arch, int dims);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromFgf (const unsigned char *blob,
unsigned int size);
GAIAGEO_DECLARE void gaiaToFgf (gaiaGeomCollPtr geom,
unsigned char **result, int *size,
int coord_dims);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseWkt (const unsigned char
*in_buffer, short type);
GAIAGEO_DECLARE void gaiaOutWkt (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom);
GAIAGEO_DECLARE void gaiaOutWktEx (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom, int precision);
GAIAGEO_DECLARE void gaiaOutWktStrict (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom, int precision);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseEWKT (const unsigned char
*in_buffer);
GAIAGEO_DECLARE void gaiaToEWKT (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom);
GAIAGEO_DECLARE void gaiaOutPointZ (gaiaOutBufferPtr out_buf,
gaiaPointPtr point);
GAIAGEO_DECLARE void gaiaOutPointZex (gaiaOutBufferPtr out_buf,
gaiaPointPtr point, int precision);
GAIAGEO_DECLARE void gaiaOutLinestringZ (gaiaOutBufferPtr out_buf,
gaiaLinestringPtr linestring);
GAIAGEO_DECLARE void gaiaOutLinestringZex (gaiaOutBufferPtr out_buf,
gaiaLinestringPtr linestring,
int precision);
GAIAGEO_DECLARE void gaiaOutPolygonZ (gaiaOutBufferPtr out_buf,
gaiaPolygonPtr polygon);
GAIAGEO_DECLARE void gaiaOutPolygonZex (gaiaOutBufferPtr out_buf,
gaiaPolygonPtr polygon,
int precision);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseKml (const unsigned char
*in_buffer);
GAIAGEO_DECLARE void gaiaOutBareKml (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom, int precision);
GAIAGEO_DECLARE void gaiaOutFullKml (gaiaOutBufferPtr out_buf,
const char *name, const char *desc,
gaiaGeomCollPtr geom, int precision);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char
*in_buffer,
sqlite3 * sqlite_handle);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml_r (const void *p_cache,
const unsigned char
*in_buffer,
sqlite3 * sqlite_handle);
GAIAGEO_DECLARE void gaiaOutGml (gaiaOutBufferPtr out_buf, int version,
int precision, gaiaGeomCollPtr geom);
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGeoJSON (const unsigned char
*in_buffer);
GAIAGEO_DECLARE void gaiaOutGeoJSON (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom, int precision,
int options);
GAIAGEO_DECLARE void gaiaOutSvg (gaiaOutBufferPtr out_buf,
gaiaGeomCollPtr geom, int relative,
int precision);
GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org);
GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p);
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name,
unsigned char type,
int offset,
unsigned char length,
unsigned char decimals);
GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p);
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org);
GAIAGEO_DECLARE void gaiaSetNullValue (gaiaDbfFieldPtr field);
GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field,
sqlite3_int64 value);
GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field,
double value);
GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str);
GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList (void);
GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list);
GAIAGEO_DECLARE int gaiaIsValidDbfList (gaiaDbfListPtr list);
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list,
char *name,
unsigned char type,
int offset,
unsigned char length,
unsigned char decimals);
GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list);
GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org);
GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile (void);
GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp);
GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp,
const char *path,
const char *charFrom,
const char *charTo);
GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp,
const char *path, int shape,
gaiaDbfListPtr list,
const char *charFrom,
const char *charTo);
GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp,
int current_row, int srid);
GAIAGEO_DECLARE int gaiaReadShpEntity_ex (gaiaShapefilePtr shp,
int current_row, int srid,
int text_dates);
GAIAGEO_DECLARE void gaiaShpAnalyze (gaiaShapefilePtr shp);
GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp,
gaiaDbfListPtr entity);
GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp);
GAIAGEO_DECLARE gaiaDbfPtr gaiaAllocDbf (void);
GAIAGEO_DECLARE void gaiaFreeDbf (gaiaDbfPtr dbf);
GAIAGEO_DECLARE void gaiaOpenDbfRead (gaiaDbfPtr dbf,
const char *path,
const char *charFrom,
const char *charTo);
GAIAGEO_DECLARE void gaiaOpenDbfWrite (gaiaDbfPtr dbf,
const char *path,
const char *charFrom,
const char *charTo);
GAIAGEO_DECLARE int gaiaReadDbfEntity (gaiaDbfPtr dbf, int current_row,
int *deleted);
GAIAGEO_DECLARE int gaiaReadDbfEntity_ex (gaiaDbfPtr dbf, int current_row,
int *deleted, int text_dates);
GAIAGEO_DECLARE int gaiaWriteDbfEntity (gaiaDbfPtr dbf,
gaiaDbfListPtr entity);
GAIAGEO_DECLARE void gaiaFlushDbfHeader (gaiaDbfPtr dbf);
#ifndef OMIT_ICONV
GAIAGEO_DECLARE gaiaTextReaderPtr gaiaTextReaderAlloc (const char *path,
char field_separator,
char text_separator,
char
decimal_separator,
int
first_line_titles,
const char
*encoding);
GAIAGEO_DECLARE void gaiaTextReaderDestroy (gaiaTextReaderPtr reader);
GAIAGEO_DECLARE int gaiaTextReaderParse (gaiaTextReaderPtr reader);
GAIAGEO_DECLARE int gaiaTextReaderGetRow (gaiaTextReaderPtr reader,
int row_num);
GAIAGEO_DECLARE int gaiaTextReaderFetchField (gaiaTextReaderPtr reader,
int field_num, int *type,
const char **value);
#endif
#ifdef __cplusplus
}
#endif
#endif