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