From: Regina Obe Date: Sun, 12 May 2013 02:27:58 +0000 (+0000) Subject: #1898, #2322 move geos functions in lwtin.c to lwgeom_geos.c to prevent unhealthy... X-Git-Tag: 2.1.0beta2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6c8cb8f3ca966728881ceb84ccd8dadc11ae5fe;p=postgis #1898, #2322 move geos functions in lwtin.c to lwgeom_geos.c to prevent unhealthy dependency on geos (for loader tools and also image generator), roll back change to cunit for loader (the geos includes). bump up version number to beta2dev git-svn-id: http://svn.osgeo.org/postgis/trunk@11438 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/Version.config b/Version.config index f54903211..3ca74384d 100644 --- a/Version.config +++ b/Version.config @@ -5,5 +5,5 @@ POSTGIS_MAJOR_VERSION=2 POSTGIS_MINOR_VERSION=1 -POSTGIS_MICRO_VERSION=0beta1 +POSTGIS_MICRO_VERSION=0beta2dev diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk index 49c34ed57..8c0d4cd91 100644 --- a/extensions/upgradeable_versions.mk +++ b/extensions/upgradeable_versions.mk @@ -3,4 +3,5 @@ UPGRADEABLE_VERSIONS = \ 2.0.1 \ 2.0.2 \ 2.0.3 \ - 2.1.0SVN + 2.1.0SVN \ + 2.1.0beta1 diff --git a/liblwgeom/lwgeom_geos.c b/liblwgeom/lwgeom_geos.c index 50bdba9c5..f627fa08b 100644 --- a/liblwgeom/lwgeom_geos.c +++ b/liblwgeom/lwgeom_geos.c @@ -1300,6 +1300,68 @@ lwgeom_offsetcurve(const LWLINE *lwline, double size, int quadsegs, int joinStyl #endif /* POSTGIS_GEOS_VERSION < 32 */ } +LWTIN *lwtin_from_geos(const GEOSGeometry *geom, int want3d) { + int type = GEOSGeomTypeId(geom); + int hasZ; + int SRID = GEOSGetSRID(geom); + + /* GEOS's 0 is equivalent to our unknown as for SRID values */ + if ( SRID == 0 ) SRID = SRID_UNKNOWN; + + if ( want3d ) { + hasZ = GEOSHasZ(geom); + if ( ! hasZ ) { + LWDEBUG(3, "Geometry has no Z, won't provide one"); + want3d = 0; + } + } + + switch (type) { + LWTRIANGLE **geoms; + uint32_t i, ngeoms; + case GEOS_GEOMETRYCOLLECTION: + LWDEBUG(4, "lwgeom_from_geometry: it's a Collection or Multi"); + + ngeoms = GEOSGetNumGeometries(geom); + geoms = NULL; + if ( ngeoms ) { + geoms = lwalloc(ngeoms * sizeof *geoms); + if (!geoms) { + lwerror("lwtin_from_geos: can't allocate geoms"); + return NULL; + } + for (i=0; i #include -#include "lwgeom_geos.h" #include "liblwgeom_internal.h" #include "lwgeom_log.h" -LWTIN *lwtin_from_geos(const GEOSGeometry *geom, int want3d); - LWTIN* lwtin_add_lwtriangle(LWTIN *mobj, const LWTRIANGLE *obj) { return (LWTIN*)lwcollection_add_lwgeom((LWCOLLECTION*)mobj, (LWGEOM*)obj); } -LWTIN *lwtin_from_geos(const GEOSGeometry *geom, int want3d) { - int type = GEOSGeomTypeId(geom); - int hasZ; - int SRID = GEOSGetSRID(geom); - - /* GEOS's 0 is equivalent to our unknown as for SRID values */ - if ( SRID == 0 ) SRID = SRID_UNKNOWN; - - if ( want3d ) { - hasZ = GEOSHasZ(geom); - if ( ! hasZ ) { - LWDEBUG(3, "Geometry has no Z, won't provide one"); - want3d = 0; - } - } - - switch (type) { - LWTRIANGLE **geoms; - uint32_t i, ngeoms; - case GEOS_GEOMETRYCOLLECTION: - LWDEBUG(4, "lwgeom_from_geometry: it's a Collection or Multi"); - - ngeoms = GEOSGetNumGeometries(geom); - geoms = NULL; - if ( ngeoms ) { - geoms = lwalloc(ngeoms * sizeof *geoms); - if (!geoms) { - lwerror("lwtin_from_geos: can't allocate geoms"); - return NULL; - } - for (i=0; i