00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GEOS_C_H_INCLUDED
00030 #define GEOS_C_H_INCLUDED
00031
00032 #ifndef __cplusplus
00033 #include <stddef.h>
00034 #else
00035 #include <cstddef>
00036 using std::size_t;
00037 #endif
00038
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #if defined(_MSC_VER)
00054 #include <geos/version.h>
00055 #define GEOS_CAPI_VERSION_MAJOR 1
00056 #define GEOS_CAPI_VERSION_MINOR 6
00057 #define GEOS_CAPI_VERSION_PATCH 0
00058 #define GEOS_CAPI_VERSION "3.1.1-CAPI-1.6.0"
00059 #else
00060 #ifndef GEOS_VERSION_MAJOR
00061 #define GEOS_VERSION_MAJOR 3
00062 #endif
00063 #ifndef GEOS_VERSION_MINOR
00064 #define GEOS_VERSION_MINOR 1
00065 #endif
00066 #ifndef GEOS_VERSION_PATCH
00067 #define GEOS_VERSION_PATCH 1
00068 #endif
00069 #ifndef GEOS_VERSION
00070 #define GEOS_VERSION "3.1.1"
00071 #endif
00072 #ifndef GEOS_JTS_PORT
00073 #define GEOS_JTS_PORT "1.7.1"
00074 #endif
00075
00076 #define GEOS_CAPI_VERSION_MAJOR 1
00077 #define GEOS_CAPI_VERSION_MINOR 6
00078 #define GEOS_CAPI_VERSION_PATCH 0
00079 #define GEOS_CAPI_VERSION "3.1.1-CAPI-1.6.0"
00080 #endif
00081
00082 #define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
00083 #define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
00084
00085
00086
00087
00088
00089
00090
00091 typedef void (*GEOSMessageHandler)(const char *fmt, ...);
00092
00093
00094
00095
00096
00097
00098
00099 #ifndef GEOSGeometry
00100 typedef struct GEOSGeom_t GEOSGeometry;
00101 typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
00102 typedef struct GEOSCoordSeq_t GEOSCoordSequence;
00103 #endif
00104
00105
00106
00107
00108 typedef GEOSGeometry* GEOSGeom;
00109 typedef GEOSCoordSequence* GEOSCoordSeq;
00110
00111
00112
00113
00114
00115
00116 enum GEOSGeomTypes {
00117 GEOS_POINT,
00118 GEOS_LINESTRING,
00119 GEOS_LINEARRING,
00120 GEOS_POLYGON,
00121 GEOS_MULTIPOINT,
00122 GEOS_MULTILINESTRING,
00123 GEOS_MULTIPOLYGON,
00124 GEOS_GEOMETRYCOLLECTION
00125 };
00126
00127
00128 enum GEOSByteOrders {
00129 GEOS_WKB_XDR = 0,
00130 GEOS_WKB_NDR = 1
00131 };
00132
00133 typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
00134
00135
00136
00137
00138
00139
00140
00141 #if defined(_MSC_VER)
00142 # define GEOS_DLL __declspec(dllexport)
00143 #else
00144 # define GEOS_DLL
00145 #endif
00146
00147 extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
00148 GEOSMessageHandler error_function);
00149 extern void GEOS_DLL finishGEOS(void);
00150
00151 extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
00152 GEOSMessageHandler notice_function,
00153 GEOSMessageHandler error_function);
00154 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
00155
00156 extern const char GEOS_DLL *GEOSversion();
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
00167 extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
00168
00169 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(GEOSContextHandle_t handle,
00170 const char *wkt);
00171 extern char GEOS_DLL *GEOSGeomToWKT_r(GEOSContextHandle_t handle,
00172 const GEOSGeometry* g);
00173
00174
00175
00176
00177
00178 extern int GEOS_DLL GEOS_getWKBOutputDims();
00179 extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
00180
00181 extern int GEOS_DLL GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle);
00182 extern int GEOS_DLL GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle,
00183 int newDims);
00184
00185
00186
00187
00188
00189 extern int GEOS_DLL GEOS_getWKBByteOrder();
00190 extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
00191
00192 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
00193 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
00194
00195 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
00196 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
00197
00198 extern int GEOS_DLL GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle);
00199 extern int GEOS_DLL GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle,
00200 int byteOrder);
00201
00202 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle,
00203 const unsigned char *wkb,
00204 size_t size);
00205 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle,
00206 const GEOSGeometry* g,
00207 size_t *size);
00208
00209 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle,
00210 const unsigned char *hex,
00211 size_t size);
00212 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle,
00213 const GEOSGeometry* g,
00214 size_t *size);
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
00228
00229 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create_r(
00230 GEOSContextHandle_t handle,
00231 unsigned int size,
00232 unsigned int dims);
00233
00234
00235
00236
00237
00238 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(const GEOSCoordSequence* s);
00239
00240 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
00241 GEOSContextHandle_t handle,
00242 const GEOSCoordSequence* s);
00243
00244
00245
00246
00247 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
00248
00249 extern void GEOS_DLL GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle,
00250 GEOSCoordSequence* s);
00251
00252
00253
00254
00255
00256 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
00257 unsigned int idx, double val);
00258 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
00259 unsigned int idx, double val);
00260 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
00261 unsigned int idx, double val);
00262 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
00263 unsigned int idx, unsigned int dim, double val);
00264
00265 extern int GEOS_DLL GEOSCoordSeq_setX_r(GEOSContextHandle_t handle,
00266 GEOSCoordSequence* s, unsigned int idx,
00267 double val);
00268 extern int GEOS_DLL GEOSCoordSeq_setY_r(GEOSContextHandle_t handle,
00269 GEOSCoordSequence* s, unsigned int idx,
00270 double val);
00271 extern int GEOS_DLL GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle,
00272 GEOSCoordSequence* s, unsigned int idx,
00273 double val);
00274 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle,
00275 GEOSCoordSequence* s,
00276 unsigned int idx,
00277 unsigned int dim, double val);
00278
00279
00280
00281
00282
00283 extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
00284 unsigned int idx, double *val);
00285 extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
00286 unsigned int idx, double *val);
00287 extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
00288 unsigned int idx, double *val);
00289 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
00290 unsigned int idx, unsigned int dim, double *val);
00291
00292 extern int GEOS_DLL GEOSCoordSeq_getX_r(GEOSContextHandle_t handle,
00293 const GEOSCoordSequence* s,
00294 unsigned int idx, double *val);
00295 extern int GEOS_DLL GEOSCoordSeq_getY_r(GEOSContextHandle_t handle,
00296 const GEOSCoordSequence* s,
00297 unsigned int idx, double *val);
00298 extern int GEOS_DLL GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle,
00299 const GEOSCoordSequence* s,
00300 unsigned int idx, double *val);
00301 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle,
00302 const GEOSCoordSequence* s,
00303 unsigned int idx,
00304 unsigned int dim, double *val);
00305
00306
00307
00308
00309 extern int GEOS_DLL GEOSCoordSeq_getSize(const GEOSCoordSequence* s,
00310 unsigned int *size);
00311 extern int GEOS_DLL GEOSCoordSeq_getDimensions(const GEOSCoordSequence* s,
00312 unsigned int *dims);
00313
00314 extern int GEOS_DLL GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle,
00315 const GEOSCoordSequence* s,
00316 unsigned int *size);
00317 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle,
00318 const GEOSCoordSequence* s,
00319 unsigned int *dims);
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
00330 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
00331 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
00332
00333 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
00334 GEOSContextHandle_t handle,
00335 GEOSCoordSequence* s);
00336 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
00337 GEOSContextHandle_t handle,
00338 GEOSCoordSequence* s);
00339 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
00340 GEOSContextHandle_t handle,
00341 GEOSCoordSequence* s);
00342
00343
00344
00345
00346
00347
00348 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(GEOSGeometry* shell,
00349 GEOSGeometry** holes, unsigned int nholes);
00350 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(int type,
00351 GEOSGeometry* *geoms, unsigned int ngeoms);
00352
00353 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
00354 GEOSContextHandle_t handle,
00355 GEOSGeometry* shell,
00356 GEOSGeometry** holes,
00357 unsigned int nholes);
00358 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
00359 GEOSContextHandle_t handle, int type,
00360 GEOSGeometry* *geoms,
00361 unsigned int ngeoms);
00362
00363 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
00364
00365 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(GEOSContextHandle_t handle,
00366 const GEOSGeometry* g);
00367
00368
00369
00370
00371
00372
00373
00374 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
00375
00376 extern void GEOS_DLL GEOSGeom_destroy_r(GEOSContextHandle_t handle,
00377 GEOSGeometry* g);
00378
00379
00380
00381
00382
00383
00384
00385 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g1);
00386 extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
00387 extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g1,
00388 double width, int quadsegs);
00389 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g1);
00390 extern GEOSGeometry GEOS_DLL *GEOSDifference(const GEOSGeometry* g1, const GEOSGeometry* g2);
00391 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(const GEOSGeometry* g1,
00392 const GEOSGeometry* g2);
00393 extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g1);
00394 extern GEOSGeometry GEOS_DLL *GEOSUnion(const GEOSGeometry* g1, const GEOSGeometry* g2);
00395 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(const GEOSGeometry* g1);
00396
00397 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g1);
00398 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
00399 extern char GEOS_DLL *GEOSRelate(const GEOSGeometry* g1, const GEOSGeometry* g2);
00400
00401 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(GEOSContextHandle_t handle,
00402 const GEOSGeometry* g1);
00403 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
00404 const GEOSGeometry* g1,
00405 const GEOSGeometry* g2);
00406 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(GEOSContextHandle_t handle,
00407 const GEOSGeometry* g1,
00408 double width, int quadsegs);
00409 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
00410 const GEOSGeometry* g1);
00411 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
00412 const GEOSGeometry* g1,
00413 const GEOSGeometry* g2);
00414 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(GEOSContextHandle_t handle,
00415 const GEOSGeometry* g1,
00416 const GEOSGeometry* g2);
00417 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(GEOSContextHandle_t handle,
00418 const GEOSGeometry* g1);
00419 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(GEOSContextHandle_t handle,
00420 const GEOSGeometry* g1,
00421 const GEOSGeometry* g2);
00422 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(GEOSContextHandle_t handle, const GEOSGeometry* g1);
00423 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(GEOSContextHandle_t handle,
00424 const GEOSGeometry* g1);
00425 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(GEOSContextHandle_t handle,
00426 const GEOSGeometry* g);
00427 extern char GEOS_DLL *GEOSRelate_r(GEOSContextHandle_t handle,
00428 const GEOSGeometry* g1,
00429 const GEOSGeometry* g2);
00430
00431
00432
00433
00434
00435 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(const GEOSGeometry * const geoms[], unsigned int ngeoms);
00436 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(const GEOSGeometry * const geoms[], unsigned int ngeoms);
00437
00438 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
00439 extern GEOSGeometry GEOS_DLL *GEOSSimplify(const GEOSGeometry* g1, double tolerance);
00440 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(const GEOSGeometry* g1,
00441 double tolerance);
00442
00443 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(GEOSContextHandle_t handle,
00444 const GEOSGeometry *const geoms[],
00445 unsigned int ngeoms);
00446 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
00447 GEOSContextHandle_t handle,
00448 const GEOSGeometry * const geoms[],
00449 unsigned int ngeoms);
00450
00451 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(GEOSContextHandle_t handle,
00452 const GEOSGeometry* g);
00453 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(GEOSContextHandle_t handle,
00454 const GEOSGeometry* g1,
00455 double tolerance);
00456 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
00457 GEOSContextHandle_t handle,
00458 const GEOSGeometry* g1, double tolerance);
00459
00460
00461
00462
00463
00464
00465
00466 extern char GEOS_DLL GEOSRelatePattern(const GEOSGeometry* g1, const GEOSGeometry* g2,
00467 const char *pat);
00468 extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
00469 extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
00470 extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
00471 extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
00472 extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
00473 extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
00474 extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
00475 extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
00476 extern char GEOS_DLL GEOSEqualsExact(const GEOSGeometry* g1, const GEOSGeometry* g2, double tolerance);
00477
00478 extern char GEOS_DLL GEOSRelatePattern_r(GEOSContextHandle_t handle,
00479 const GEOSGeometry* g1,
00480 const GEOSGeometry* g2,
00481 const char *pat);
00482 extern char GEOS_DLL GEOSDisjoint_r(GEOSContextHandle_t handle,
00483 const GEOSGeometry* g1,
00484 const GEOSGeometry* g2);
00485 extern char GEOS_DLL GEOSTouches_r(GEOSContextHandle_t handle,
00486 const GEOSGeometry* g1,
00487 const GEOSGeometry* g2);
00488 extern char GEOS_DLL GEOSIntersects_r(GEOSContextHandle_t handle,
00489 const GEOSGeometry* g1,
00490 const GEOSGeometry* g2);
00491 extern char GEOS_DLL GEOSCrosses_r(GEOSContextHandle_t handle,
00492 const GEOSGeometry* g1,
00493 const GEOSGeometry* g2);
00494 extern char GEOS_DLL GEOSWithin_r(GEOSContextHandle_t handle,
00495 const GEOSGeometry* g1,
00496 const GEOSGeometry* g2);
00497 extern char GEOS_DLL GEOSContains_r(GEOSContextHandle_t handle,
00498 const GEOSGeometry* g1,
00499 const GEOSGeometry* g2);
00500 extern char GEOS_DLL GEOSOverlaps_r(GEOSContextHandle_t handle,
00501 const GEOSGeometry* g1,
00502 const GEOSGeometry* g2);
00503 extern char GEOS_DLL GEOSEquals_r(GEOSContextHandle_t handle,
00504 const GEOSGeometry* g1,
00505 const GEOSGeometry* g2);
00506 extern char GEOS_DLL GEOSEqualsExact_r(GEOSContextHandle_t handle,
00507 const GEOSGeometry* g1,
00508 const GEOSGeometry* g2,
00509 double tolerance);
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
00521
00522 extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
00523
00524 extern char GEOS_DLL GEOSPreparedContains(const GEOSPreparedGeometry* pg1, const GEOSGeometry* g2);
00525 extern char GEOS_DLL GEOSPreparedContainsProperly(const GEOSPreparedGeometry* pg1, const GEOSGeometry* g2);
00526 extern char GEOS_DLL GEOSPreparedCovers(const GEOSPreparedGeometry* pg1, const GEOSGeometry* g2);
00527 extern char GEOS_DLL GEOSPreparedIntersects(const GEOSPreparedGeometry* pg1, const GEOSGeometry* g2);
00528
00529 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
00530 GEOSContextHandle_t handle,
00531 const GEOSGeometry* g);
00532
00533 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle,
00534 const GEOSPreparedGeometry* g);
00535
00536 extern char GEOS_DLL GEOSPreparedContains_r(GEOSContextHandle_t handle,
00537 const GEOSPreparedGeometry* pg1,
00538 const GEOSGeometry* g2);
00539 extern char GEOS_DLL GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle,
00540 const GEOSPreparedGeometry* pg1,
00541 const GEOSGeometry* g2);
00542 extern char GEOS_DLL GEOSPreparedCovers_r(GEOSContextHandle_t handle,
00543 const GEOSPreparedGeometry* pg1,
00544 const GEOSGeometry* g2);
00545 extern char GEOS_DLL GEOSPreparedIntersects_r(GEOSContextHandle_t handle,
00546 const GEOSPreparedGeometry* pg1,
00547 const GEOSGeometry* g2);
00548
00549
00550
00551
00552
00553
00554
00555 extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g1);
00556 extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g1);
00557 extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g1);
00558 extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g1);
00559 extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g1);
00560 extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g1);
00561
00562 extern char GEOS_DLL GEOSisEmpty_r(GEOSContextHandle_t handle,
00563 const GEOSGeometry* g1);
00564 extern char GEOS_DLL GEOSisValid_r(GEOSContextHandle_t handle,
00565 const GEOSGeometry* g1);
00566 extern char GEOS_DLL *GEOSisValidReason_r(GEOSContextHandle_t handle,
00567 const GEOSGeometry* g1);
00568 extern char GEOS_DLL GEOSisSimple_r(GEOSContextHandle_t handle,
00569 const GEOSGeometry* g1);
00570 extern char GEOS_DLL GEOSisRing_r(GEOSContextHandle_t handle,
00571 const GEOSGeometry* g1);
00572 extern char GEOS_DLL GEOSHasZ_r(GEOSContextHandle_t handle,
00573 const GEOSGeometry* g1);
00574
00575
00576
00577
00578
00579
00580
00581
00582 extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g1);
00583
00584 extern char GEOS_DLL *GEOSGeomType_r(GEOSContextHandle_t handle,
00585 const GEOSGeometry* g1);
00586
00587
00588 extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g1);
00589
00590 extern int GEOS_DLL GEOSGeomTypeId_r(GEOSContextHandle_t handle,
00591 const GEOSGeometry* g1);
00592
00593
00594 extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g1);
00595
00596 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int srid);
00597
00598 extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
00599 const GEOSGeometry* g1);
00600
00601 extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry* g, int srid);
00602
00603
00604
00605
00606
00607
00608
00609 extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g1);
00610
00611 extern int GEOS_DLL GEOSGetNumGeometries_r(GEOSContextHandle_t handle,
00612 const GEOSGeometry* g1);
00613
00614
00615
00616
00617
00618
00619 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(const GEOSGeometry* g, int n);
00620
00621 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
00622 GEOSContextHandle_t handle,
00623 const GEOSGeometry* g, int n);
00624
00625
00626 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g1);
00627
00628 extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
00629 GEOSGeometry* g1);
00630
00631
00632 extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g1);
00633
00634 extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
00635 const GEOSGeometry* g1);
00636
00637
00638
00639
00640
00641
00642 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(const GEOSGeometry* g, int n);
00643
00644 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
00645 GEOSContextHandle_t handle,
00646 const GEOSGeometry* g, int n);
00647
00648
00649
00650
00651
00652
00653 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(const GEOSGeometry* g);
00654
00655 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
00656 GEOSContextHandle_t handle,
00657 const GEOSGeometry* g);
00658
00659
00660 extern int GEOS_DLL GEOSGetNumCoordinates(const GEOSGeometry* g1);
00661
00662 extern int GEOS_DLL GEOSGetNumCoordinates_r(GEOSContextHandle_t handle,
00663 const GEOSGeometry* g1);
00664
00665
00666
00667
00668
00669 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(const GEOSGeometry* g);
00670
00671 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
00672 GEOSContextHandle_t handle,
00673 const GEOSGeometry* g);
00674
00675
00676
00677
00678 extern int GEOS_DLL GEOSGeom_getDimensions(const GEOSGeometry* g);
00679
00680 extern int GEOS_DLL GEOSGeom_getDimensions_r(GEOSContextHandle_t handle,
00681 const GEOSGeometry* g);
00682
00683
00684
00685
00686
00687
00688
00689
00690 extern int GEOS_DLL GEOSArea(const GEOSGeometry* g1, double *area);
00691 extern int GEOS_DLL GEOSLength(const GEOSGeometry* g1, double *length);
00692 extern int GEOS_DLL GEOSDistance(const GEOSGeometry* g1, const GEOSGeometry* g2,
00693 double *dist);
00694
00695 extern int GEOS_DLL GEOSArea_r(GEOSContextHandle_t handle,
00696 const GEOSGeometry* g1, double *area);
00697 extern int GEOS_DLL GEOSLength_r(GEOSContextHandle_t handle,
00698 const GEOSGeometry* g1, double *length);
00699 extern int GEOS_DLL GEOSDistance_r(GEOSContextHandle_t handle,
00700 const GEOSGeometry* g1,
00701 const GEOSGeometry* g2, double *dist);
00702
00703
00704
00705
00706
00707
00708
00709
00710 typedef struct GEOSWKTReader_t GEOSWKTReader;
00711 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
00712 typedef struct GEOSWKBReader_t GEOSWKBReader;
00713 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
00714
00715
00716
00717 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create();
00718 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
00719 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(GEOSWKTReader* reader, const char *wkt);
00720
00721 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
00722 GEOSContextHandle_t handle);
00723 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
00724 GEOSWKTReader* reader);
00725 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(GEOSContextHandle_t handle,
00726 GEOSWKTReader* reader,
00727 const char *wkt);
00728
00729
00730 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create();
00731 extern void GEOS_DLL GEOSWKTWriter_destroy(GEOSWKTWriter* writer);
00732 extern char GEOS_DLL *GEOSWKTWriter_write(GEOSWKTWriter* reader, const GEOSGeometry* g);
00733
00734 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
00735 GEOSContextHandle_t handle);
00736 extern void GEOS_DLL GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle,
00737 GEOSWKTWriter* writer);
00738 extern char GEOS_DLL *GEOSWKTWriter_write_r(GEOSContextHandle_t handle,
00739 GEOSWKTWriter* reader,
00740 const GEOSGeometry* g);
00741
00742
00743 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create();
00744 extern void GEOS_DLL GEOSWKBReader_destroy(GEOSWKBReader* reader);
00745 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(GEOSWKBReader* reader, const unsigned char *wkb, size_t size);
00746 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(GEOSWKBReader* reader, const unsigned char *hex, size_t size);
00747
00748 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
00749 GEOSContextHandle_t handle);
00750 extern void GEOS_DLL GEOSWKBReader_destroy_r(GEOSContextHandle_t handle,
00751 GEOSWKBReader* reader);
00752 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(GEOSContextHandle_t handle,
00753 GEOSWKBReader* reader,
00754 const unsigned char *wkb,
00755 size_t size);
00756 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
00757 GEOSContextHandle_t handle,
00758 GEOSWKBReader* reader,
00759 const unsigned char *hex,
00760 size_t size);
00761
00762
00763 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create();
00764 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
00765
00766 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
00767 GEOSContextHandle_t handle);
00768 extern void GEOS_DLL GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle,
00769 GEOSWKBWriter* writer);
00770
00771
00772 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(GEOSWKBWriter* writer, const GEOSGeometry* g, size_t *size);
00773 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(GEOSWKBWriter* writer, const GEOSGeometry* g, size_t *size);
00774
00775 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
00776 GEOSContextHandle_t handle,
00777 GEOSWKBWriter* writer,
00778 const GEOSGeometry* g,
00779 size_t *size);
00780 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
00781 GEOSContextHandle_t handle,
00782 GEOSWKBWriter* writer,
00783 const GEOSGeometry* g,
00784 size_t *size);
00785
00786
00787
00788
00789
00790 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter* writer);
00791 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(GEOSWKBWriter* writer, int newDimension);
00792
00793 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
00794 GEOSContextHandle_t handle,
00795 const GEOSWKBWriter* writer);
00796 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
00797 GEOSContextHandle_t handle,
00798 GEOSWKBWriter* writer, int newDimension);
00799
00800
00801
00802
00803
00804 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(const GEOSWKBWriter* writer);
00805 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(GEOSWKBWriter* writer, int byteOrder);
00806
00807 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle,
00808 const GEOSWKBWriter* writer);
00809 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle,
00810 GEOSWKBWriter* writer,
00811 int byteOrder);
00812
00813
00814
00815
00816 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(const GEOSWKBWriter* writer);
00817 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter* writer, const char writeSRID);
00818
00819 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle,
00820 const GEOSWKBWriter* writer);
00821 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle,
00822 GEOSWKBWriter* writer, const char writeSRID);
00823
00824
00825
00826
00827
00828
00829 extern void GEOS_DLL GEOSFree( void *buffer );
00830 extern void GEOS_DLL GEOSFree_r( GEOSContextHandle_t handle, void *buffer );
00831
00832 #ifdef __cplusplus
00833 }
00834 #endif
00835
00836 #endif