SpatiaLite 4.3.0a

src/headers/spatialite/gg_advanced.h

Go to the documentation of this file.
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 */
 All Data Structures Files Functions Variables Typedefs Defines