|
SpatiaLite 4.3.0a
|
00001 /* 00002 gg_advanced.h -- Gaia common support for geometries: advanced 00003 00004 version 4.3, 2015 June 29 00005 00006 Author: Sandro Furieri a.furieri@lqt.it 00007 00008 ------------------------------------------------------------------------------ 00009 00010 Version: MPL 1.1/GPL 2.0/LGPL 2.1 00011 00012 The contents of this file are subject to the Mozilla Public License Version 00013 1.1 (the "License"); you may not use this file except in compliance with 00014 the License. You may obtain a copy of the License at 00015 http://www.mozilla.org/MPL/ 00016 00017 Software distributed under the License is distributed on an "AS IS" basis, 00018 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00019 for the specific language governing rights and limitations under the 00020 License. 00021 00022 The Original Code is the SpatiaLite library 00023 00024 The Initial Developer of the Original Code is Alessandro Furieri 00025 00026 Portions created by the Initial Developer are Copyright (C) 2008-2015 00027 the Initial Developer. All Rights Reserved. 00028 00029 Contributor(s): 00030 00031 00032 Alternatively, the contents of this file may be used under the terms of 00033 either the GNU General Public License Version 2 or later (the "GPL"), or 00034 the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 00035 in which case the provisions of the GPL or the LGPL are applicable instead 00036 of those above. If you wish to allow use of your version of this file only 00037 under the terms of either the GPL or the LGPL, and not to allow others to 00038 use your version of this file under the terms of the MPL, indicate your 00039 decision by deleting the provisions above and replace them with the notice 00040 and other provisions required by the GPL or the LGPL. If you do not delete 00041 the provisions above, a recipient may use your version of this file under 00042 the terms of any one of the MPL, the GPL or the LGPL. 00043 00044 */ 00045 00046 /* 00047 00048 CREDITS: 00049 00050 this module has been partly funded by: 00051 Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale 00052 (wrapping liblwgeom APIs) 00053 00054 */ 00055 00056 00063 #ifndef _GG_ADVANCED_H 00064 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00065 #define _GG_ADVANCED_H 00066 #endif 00067 00069 #define GAIA2GEOS_ALL 0 00070 00072 #define GAIA2GEOS_ONLY_POINTS 1 00073 00075 #define GAIA2GEOS_ONLY_LINESTRINGS 2 00076 00078 #define GAIA2GEOS_ONLY_POLYGONS 3 00079 00080 #ifdef __cplusplus 00081 extern "C" 00082 { 00083 #endif 00084 00085 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00086 #ifndef OMIT_PROJ /* including PROJ.4 */ 00087 #endif 00088 00099 GAIAGEO_DECLARE double gaiaRadsToDegs (double rads); 00100 00111 GAIAGEO_DECLARE double gaiaDegsToRads (double degs); 00112 00132 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, 00133 char *proj_from, 00134 char *proj_to); 00135 00156 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache, 00157 gaiaGeomCollPtr org, 00158 char *proj_from, 00159 char *proj_to); 00160 00161 #endif /* end including PROJ.4 */ 00162 00163 #ifndef OMIT_GEOS /* including GEOS */ 00164 00176 GAIAGEO_DECLARE void gaiaResetGeosMsg (void); 00177 00191 GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache); 00192 00208 GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void); 00209 00227 GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache); 00228 00244 GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void); 00245 00263 GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache); 00264 00279 GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void); 00280 00297 GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache); 00298 00314 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void); 00315 00333 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void 00334 *p_cache); 00335 00349 GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg); 00350 00365 GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache, 00366 const char *msg); 00367 00381 GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg); 00382 00397 GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache, 00398 const char *msg); 00399 00413 GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg); 00414 00429 GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache, 00430 const char *msg); 00431 00447 GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia); 00448 00465 GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache, 00466 const gaiaGeomCollPtr gaia); 00467 00486 GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia, 00487 int mode); 00488 00508 GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache, 00509 const gaiaGeomCollPtr gaia, 00510 int mode); 00511 00528 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos); 00529 00547 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache, 00548 const void *geos); 00549 00566 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos); 00567 00585 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache, 00586 const void *geos); 00587 00604 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos); 00605 00623 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache, 00624 const void *geos); 00625 00642 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos); 00643 00661 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache, 00662 const void *geos); 00663 00678 GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom); 00679 00695 GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache, 00696 gaiaGeomCollPtr geom); 00697 00713 GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line); 00714 00729 GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom); 00730 00746 GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache, 00747 gaiaGeomCollPtr geom); 00748 00763 GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line); 00764 00780 GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache, 00781 gaiaLinestringPtr line); 00782 00797 GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom); 00798 00814 GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom); 00815 00832 GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache, 00833 gaiaGeomCollPtr geom); 00834 00849 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom); 00850 00866 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache, 00867 gaiaGeomCollPtr geom); 00868 00884 GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache, 00885 gaiaGeomCollPtr geom); 00886 00902 GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, 00903 double *length); 00904 00921 GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache, 00922 gaiaGeomCollPtr geom, 00923 double *length); 00924 00943 GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, 00944 int perimeter, 00945 double *length); 00946 00966 GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, 00967 gaiaGeomCollPtr geom, 00968 int perimeter, 00969 double *length); 00970 00986 GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area); 00987 01004 GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache, 01005 gaiaGeomCollPtr geom, double *area); 01006 01025 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, 01026 int force_multi); 01027 01047 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache, 01048 gaiaGeomCollPtr geom, 01049 int force_multi); 01066 GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, 01067 gaiaGeomCollPtr geom2); 01085 GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache, 01086 gaiaGeomCollPtr geom1, 01087 gaiaGeomCollPtr geom2); 01088 01105 GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, 01106 gaiaGeomCollPtr geom2); 01107 01125 GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache, 01126 gaiaGeomCollPtr geom1, 01127 gaiaGeomCollPtr geom2); 01128 01148 GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache, 01149 gaiaGeomCollPtr geom1, 01150 unsigned char *blob1, 01151 int size1, 01152 gaiaGeomCollPtr geom2, 01153 unsigned char *blob2, 01154 int size2); 01155 01173 GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, 01174 gaiaGeomCollPtr geom2); 01175 01194 GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache, 01195 gaiaGeomCollPtr geom1, 01196 gaiaGeomCollPtr geom2); 01197 01217 GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache, 01218 gaiaGeomCollPtr geom1, 01219 unsigned char *blob1, 01220 int size1, 01221 gaiaGeomCollPtr geom2, 01222 unsigned char *blob2, 01223 int size2); 01224 01242 GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, 01243 gaiaGeomCollPtr geom2); 01244 01263 GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache, 01264 gaiaGeomCollPtr geom1, 01265 gaiaGeomCollPtr geom2); 01266 01286 GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache, 01287 gaiaGeomCollPtr geom1, 01288 unsigned char *blob1, 01289 int size1, 01290 gaiaGeomCollPtr geom2, 01291 unsigned char *blob2, 01292 int size2); 01293 01311 GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, 01312 gaiaGeomCollPtr geom2); 01313 01332 GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache, 01333 gaiaGeomCollPtr geom1, 01334 gaiaGeomCollPtr geom2); 01335 01355 GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache, 01356 gaiaGeomCollPtr geom1, 01357 unsigned char *blob1, 01358 int size1, 01359 gaiaGeomCollPtr geom2, 01360 unsigned char *blob2, 01361 int size2); 01362 01380 GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, 01381 gaiaGeomCollPtr geom2); 01382 01401 GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache, 01402 gaiaGeomCollPtr geom1, 01403 gaiaGeomCollPtr geom2); 01404 01424 GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache, 01425 gaiaGeomCollPtr geom1, 01426 unsigned char *blob1, 01427 int size1, 01428 gaiaGeomCollPtr geom2, 01429 unsigned char *blob2, 01430 int size2); 01431 01449 GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, 01450 gaiaGeomCollPtr geom2); 01451 01470 GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache, 01471 gaiaGeomCollPtr geom1, 01472 gaiaGeomCollPtr geom2); 01473 01493 GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache, 01494 gaiaGeomCollPtr geom1, 01495 unsigned char *blob1, 01496 int size1, 01497 gaiaGeomCollPtr geom2, 01498 unsigned char *blob2, 01499 int size2); 01500 01518 GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, 01519 gaiaGeomCollPtr geom2); 01520 01539 GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache, 01540 gaiaGeomCollPtr geom1, 01541 gaiaGeomCollPtr geom2); 01542 01562 GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache, 01563 gaiaGeomCollPtr geom1, 01564 unsigned char *blob1, 01565 int size1, 01566 gaiaGeomCollPtr geom2, 01567 unsigned char *blob2, 01568 int size2); 01569 01589 GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, 01590 gaiaGeomCollPtr geom2, 01591 const char *pattern); 01592 01612 GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache, 01613 gaiaGeomCollPtr geom1, 01614 gaiaGeomCollPtr geom2, 01615 const char *pattern); 01616 01634 GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1, 01635 gaiaGeomCollPtr geom2, 01636 double *dist); 01637 01656 GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache, 01657 gaiaGeomCollPtr geom1, 01658 gaiaGeomCollPtr geom2, 01659 double *dist); 01660 01680 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection (gaiaGeomCollPtr 01681 geom1, 01682 gaiaGeomCollPtr 01683 geom2); 01684 01705 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void 01706 *p_cache, 01707 gaiaGeomCollPtr 01708 geom1, 01709 gaiaGeomCollPtr 01710 geom2); 01711 01730 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, 01731 gaiaGeomCollPtr geom2); 01732 01752 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache, 01753 gaiaGeomCollPtr geom1, 01754 gaiaGeomCollPtr geom2); 01755 01775 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom); 01776 01797 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache, 01798 gaiaGeomCollPtr geom); 01799 01817 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference (gaiaGeomCollPtr 01818 geom1, 01819 gaiaGeomCollPtr 01820 geom2); 01821 01840 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void 01841 *p_cache, 01842 gaiaGeomCollPtr 01843 geom1, 01844 gaiaGeomCollPtr 01845 geom2); 01846 01864 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference (gaiaGeomCollPtr 01865 geom1, 01866 gaiaGeomCollPtr 01867 geom2); 01868 01887 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void 01888 *p_cache, 01889 gaiaGeomCollPtr 01890 geom1, 01891 gaiaGeomCollPtr 01892 geom2); 01893 01910 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom); 01911 01929 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache, 01930 gaiaGeomCollPtr geom); 01931 01947 GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, 01948 double *y); 01949 01966 GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache, 01967 gaiaGeomCollPtr geom, double *x, 01968 double *y); 01969 01985 GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, 01986 double *y); 01987 02004 GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache, 02005 gaiaGeomCollPtr geom, 02006 double *x, double *y); 02007 02026 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, 02027 double tolerance); 02028 02048 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache, 02049 gaiaGeomCollPtr 02050 geom, 02051 double tolerance); 02052 02071 GAIAGEO_DECLARE gaiaGeomCollPtr 02072 gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, 02073 double tolerance); 02074 02094 GAIAGEO_DECLARE gaiaGeomCollPtr 02095 gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache, 02096 gaiaGeomCollPtr geom, 02097 double tolerance); 02098 02115 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom); 02116 02134 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache, 02135 gaiaGeomCollPtr geom); 02136 02156 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, 02157 double radius, 02158 int points); 02159 02180 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache, 02181 gaiaGeomCollPtr geom, 02182 double radius, 02183 int points); 02184 02185 #ifndef DOXYGEN_SHOULD_IGNORE_THIS 02186 #ifdef GEOS_ADVANCED 02187 #endif 02188 02205 GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, 02206 gaiaGeomCollPtr geom2, 02207 double *dist); 02208 02226 GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache, 02227 gaiaGeomCollPtr geom1, 02228 gaiaGeomCollPtr geom2, 02229 double *dist); 02230 02252 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom, 02253 double radius, int points, 02254 int left_right); 02255 02278 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache, 02279 gaiaGeomCollPtr geom, 02280 double radius, 02281 int points, 02282 int left_right); 02283 02305 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, 02306 double radius, 02307 int points, 02308 int left_right); 02309 02332 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void 02333 *p_cache, 02334 gaiaGeomCollPtr 02335 geom, 02336 double radius, 02337 int points, 02338 int left_right); 02339 02357 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, 02358 gaiaGeomCollPtr geom2); 02359 02378 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache, 02379 gaiaGeomCollPtr geom1, 02380 gaiaGeomCollPtr geom2); 02381 02401 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint (gaiaGeomCollPtr 02402 ln_geom, 02403 double fraction); 02404 02425 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void 02426 *p_cache, 02427 gaiaGeomCollPtr 02428 ln_geom, 02429 double 02430 fraction); 02431 02453 GAIAGEO_DECLARE gaiaGeomCollPtr 02454 gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr ln_geom, 02455 double distance); 02456 02479 GAIAGEO_DECLARE gaiaGeomCollPtr 02480 gaiaLineInterpolateEquidistantPoints_r (const void *p_cache, 02481 gaiaGeomCollPtr ln_geom, 02482 double distance); 02483 02505 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom, 02506 double start_fraction, 02507 double end_fraction); 02508 02531 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache, 02532 gaiaGeomCollPtr 02533 ln_geom, 02534 double start_fraction, 02535 double end_fraction); 02536 02556 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1, 02557 gaiaGeomCollPtr geom2); 02558 02579 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache, 02580 gaiaGeomCollPtr geom1, 02581 gaiaGeomCollPtr geom2); 02582 02602 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1, 02603 gaiaGeomCollPtr geom2, 02604 double tolerance); 02605 02626 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache, 02627 gaiaGeomCollPtr geom1, 02628 gaiaGeomCollPtr geom2, 02629 double tolerance); 02630 02647 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom); 02648 02666 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache, 02667 gaiaGeomCollPtr geom); 02668 02686 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, 02687 gaiaGeomCollPtr geom2); 02688 02707 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom); 02708 02728 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache, 02729 gaiaGeomCollPtr geom); 02730 02748 GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom, 02749 gaiaGeomCollPtr pt_geom); 02750 02769 GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache, 02770 gaiaGeomCollPtr ln_geom, 02771 gaiaGeomCollPtr pt_geom); 02772 02787 GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, 02788 gaiaGeomCollPtr geom2); 02789 02805 GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache, 02806 gaiaGeomCollPtr geom1, 02807 gaiaGeomCollPtr geom2); 02808 02828 GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache, 02829 gaiaGeomCollPtr geom1, 02830 unsigned char *blob1, 02831 int size1, 02832 gaiaGeomCollPtr geom2, 02833 unsigned char *blob2, 02834 int size2); 02835 02851 GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, 02852 gaiaGeomCollPtr geom2); 02853 02870 GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache, 02871 gaiaGeomCollPtr geom1, 02872 gaiaGeomCollPtr geom2); 02873 02894 GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache, 02895 gaiaGeomCollPtr geom1, 02896 unsigned char *blob1, 02897 int size1, 02898 gaiaGeomCollPtr geom2, 02899 unsigned char *blob2, 02900 int size2); 02901 02923 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, 02924 double origin_x, 02925 double origin_y, 02926 double size, 02927 int only_edges); 02928 02951 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache, 02952 gaiaGeomCollPtr geom, 02953 double origin_x, 02954 double origin_y, 02955 double size, 02956 int only_edges); 02957 02979 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, 02980 double origin_x, 02981 double origin_y, 02982 double size, 02983 int only_edges); 02984 03007 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache, 03008 gaiaGeomCollPtr geom, 03009 double origin_x, 03010 double origin_y, 03011 double size, 03012 int only_edges); 03013 03035 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, 03036 double origin_x, 03037 double origin_y, 03038 double size, 03039 int only_edges); 03040 03063 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache, 03064 gaiaGeomCollPtr geom, 03065 double origin_x, 03066 double origin_y, 03067 double size, 03068 int only_edges); 03069 03070 #endif /* end GEOS advanced features */ 03071 03072 #ifndef DOXYGEN_SHOULD_IGNORE_THIS 03073 #ifdef GEOS_TRUNK 03074 #endif 03075 03096 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation (gaiaGeomCollPtr 03097 geom, 03098 double tolerance, 03099 int only_edges); 03100 03122 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void 03123 *p_cache, 03124 gaiaGeomCollPtr 03125 geom, 03126 double 03127 tolerance, 03128 int 03129 only_edges); 03130 03151 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom, 03152 double extra_frame_size, 03153 double tolerance, 03154 int only_edges); 03155 03177 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache, 03178 gaiaGeomCollPtr geom, 03179 double 03180 extra_frame_size, 03181 double tolerance, 03182 int only_edges); 03183 03212 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom, 03213 double factor, 03214 double tolerance, 03215 int allow_holes); 03216 03246 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache, 03247 gaiaGeomCollPtr geom, 03248 double factor, 03249 double tolerance, 03250 int allow_holes); 03251 03252 #endif /* end GEOS experimental features */ 03253 03254 #ifndef DOXYGEN_SHOULD_IGNORE_THIS 03255 #ifdef ENABLE_LWGEOM 03256 #endif 03257 03268 GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void); 03269 03283 GAIAGEO_DECLARE const char *gaiaGetLwGeomErrorMsg (void); 03284 03298 GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void); 03299 03312 GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg); 03313 03326 GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg); 03327 03346 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom); 03347 03367 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (gaiaGeomCollPtr 03368 geom); 03369 03389 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom, 03390 double dist); 03391 03409 GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, 03410 double yb, double *azimuth); 03411 03431 GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, 03432 double yb, double a, double b, 03433 double *azimuth); 03434 03454 GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, 03455 double b, double distance, 03456 double azimuth, double *x2, 03457 double *y2); 03458 03472 GAIAGEO_DECLARE char *gaiaGeoHash (gaiaGeomCollPtr geom, int precision); 03473 03490 GAIAGEO_DECLARE char *gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, 03491 int precision, int options, 03492 const char *refid); 03493 03509 GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1, 03510 gaiaGeomCollPtr geom2, double *dist); 03511 03527 GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1, 03528 gaiaGeomCollPtr geom2, double *dist); 03529 03545 GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1, 03546 gaiaGeomCollPtr geom2, double *dist); 03547 03566 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input, 03567 gaiaGeomCollPtr blade); 03568 03588 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input, 03589 gaiaGeomCollPtr blade); 03590 03610 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, 03611 gaiaGeomCollPtr blade); 03612 03629 GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, 03630 double b, int use_ellipsoid, 03631 double *area); 03632 03649 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr input); 03650 03651 #endif /* end LWGEOM support */ 03652 03653 #endif /* end including GEOS */ 03654 03683 GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom, 03684 double origin_x, 03685 double origin_y, 03686 double origin_z, 03687 double origin_m, 03688 double size_x, 03689 double size_y, 03690 double size_z, 03691 double size_m); 03692 03693 #ifdef __cplusplus 03694 } 03695 #endif 03696 03697 #endif /* _GG_ADVANCED_H */
1.7.3