]> granicus.if.org Git - postgis/commitdiff
Remove pglwgeom_ndims
authorPaul Ramsey <pramsey@cleverelephant.ca>
Sat, 29 Oct 2011 20:35:41 +0000 (20:35 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Sat, 29 Oct 2011 20:35:41 +0000 (20:35 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8046 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/g_serialized.c
liblwgeom/liblwgeom.h.in
liblwgeom/lwgeom.c
libpgcommon/lwgeom_pg.c
libpgcommon/lwgeom_pg.h
postgis/geography_inout.c
postgis/lwgeom_functions_basic.c
postgis/lwgeom_ogc.c
raster/rt_pg/rt_pg.c

index 1e9a05ccc3d716da9ddefe2895dc52abbf87830d..4e02933e5a726bbd82d92b607f746872dd436160 100644 (file)
@@ -37,6 +37,11 @@ int gserialized_get_zm(const GSERIALIZED *gser)
        return 2 * FLAGS_GET_Z(gser->flags) + FLAGS_GET_M(gser->flags);
 }
 
+int gserialized_ndims(const GSERIALIZED *gser)
+{
+       return FLAGS_NDIMS(gser->flags);
+}
+
 uint32_t gserialized_get_type(const GSERIALIZED *s)
 {
        uint32_t *ptr;
index 8a6f346b7176c270c0a25c5e9fc29b7cbb90ee6f..a9e415c67bb0e0dfbfb80ae66f6b27bb55e79e24 100644 (file)
@@ -644,6 +644,12 @@ extern int gserialized_has_m(const GSERIALIZED *gser);
 */
 extern int gserialized_get_zm(const GSERIALIZED *gser);
 
+/**
+* Return the number of dimensions (2, 3, 4) in a geometry
+*/
+extern int gserialized_ndims(const GSERIALIZED *gser);
+
+
 /**
 * Call this function to drop BBOX and SRID
 * from LWGEOM. If LWGEOM type is *not* flagged
@@ -1188,10 +1194,20 @@ extern double lwpoint_get_y(const LWPOINT *point);
 extern double lwpoint_get_z(const LWPOINT *point);
 extern double lwpoint_get_m(const LWPOINT *point);
 
-/* Some lwgeom info */
+/**
+* Return #LW_TRUE if geometry has Z ordinates
+*/
 extern int lwgeom_has_z(const LWGEOM *geom);
+
+/**
+* Return #LW_TRUE if geometry has M ordinates.
+*/
 extern int lwgeom_has_m(const LWGEOM *geom);
 
+/**
+* Return the number of dimensions (2, 3, 4) in a geometry
+*/
+extern int lwgeom_ndims(const LWGEOM *geom);
 
 /*
  * Given a point, returns the location of closest point on pointarray
index 0c967fad714670d2cb6143d22dc9d49c07a36c87..ae1dc47a3df026c40f67fb70aad1801ab294078f 100644 (file)
@@ -657,6 +657,14 @@ lwgeom_has_m(const LWGEOM *geom)
        return FLAGS_GET_M(geom->flags);
 }
 
+int 
+lwgeom_ndims(const LWGEOM *geom)
+{
+       if ( ! geom ) return 0;
+       return FLAGS_NDIMS(geom->flags);
+}
+
+
 void
 lwgeom_set_geodetic(LWGEOM *geom, int value)
 {
index 25ded1b57de8cee5b6d9a9ce39805d67f9caf7c9..54309afb31decab3be3c978368c9d3bb6d880bbb 100644 (file)
@@ -202,11 +202,6 @@ pglwgeom_serialize(LWGEOM *in)
        return gser;
 }
 
-int pglwgeom_ndims(const GSERIALIZED *geom)
-{
-       return FLAGS_NDIMS(geom->flags);
-}
-
 int pglwgeom_getbox2d_p(const GSERIALIZED *geom, GBOX *box)
 {
        LWGEOM *lwgeom;
index 494ecdacb5139f1dfa65ee1d9b9747552a90e6b4..9afd0aab74d328cf191f9c2ab2a45a97074c4df7 100644 (file)
@@ -95,8 +95,6 @@ GSERIALIZED* gserialized_drop_gidx(GSERIALIZED *g);
 /* Serialize/deserialize a GSERIALIZED (postgis datatype) */
 extern GSERIALIZED *pglwgeom_serialize(LWGEOM *lwgeom);
 
-
-extern int pglwgeom_ndims(const GSERIALIZED *geom);
 /*
  * Get the 2d bounding box of the given geometry, in FLOAT4 format.
  * Use a cached bbox if available, compute it otherwise.
index 28641445f771291a024dcd63d12ba9169186684c..067629527ca3011477b7b02ff8a0385325c93efb 100644 (file)
@@ -565,7 +565,7 @@ Datum geography_as_binary(PG_FUNCTION_ARGS)
        /* Get our lwgeom form */
        lwgeom = lwgeom_from_gserialized(g);
 
-       if ( FLAGS_NDIMS(lwgeom->flags) > 2 )
+       if ( gserialized_ndims(g) > 2 )
        {
                /* Strip out the higher dimensions */
                LWGEOM *tmp = lwgeom_force_2d(lwgeom);
index aac09e4555a03683a021b1373dec1ed11380a1fd..f308faf1b41fefbc3656ab4f288cd6d8b653590c 100644 (file)
@@ -327,7 +327,7 @@ Datum LWGEOM_force_2d(PG_FUNCTION_ARGS)
        LWGEOM *lwg_in, *lwg_out;
 
        /* already 2d */
-       if ( pglwgeom_ndims(pg_geom_in) == 2 ) PG_RETURN_POINTER(pg_geom_in);
+       if ( gserialized_ndims(pg_geom_in) == 2 ) PG_RETURN_POINTER(pg_geom_in);
 
        lwg_in = lwgeom_from_gserialized(pg_geom_in);
        lwg_out = lwgeom_force_2d(lwg_in);
@@ -348,7 +348,7 @@ Datum LWGEOM_force_3dz(PG_FUNCTION_ARGS)
        LWGEOM *lwg_in, *lwg_out;
 
        /* already 3d */
-       if ( pglwgeom_ndims(pg_geom_in) == 3 && gserialized_has_z(pg_geom_in) ) 
+       if ( gserialized_ndims(pg_geom_in) == 3 && gserialized_has_z(pg_geom_in) ) 
                PG_RETURN_POINTER(pg_geom_in);
 
        lwg_in = lwgeom_from_gserialized(pg_geom_in);
@@ -370,7 +370,7 @@ Datum LWGEOM_force_3dm(PG_FUNCTION_ARGS)
        LWGEOM *lwg_in, *lwg_out;
 
        /* already 3d */
-       if ( pglwgeom_ndims(pg_geom_in) == 3 && gserialized_has_m(pg_geom_in) ) 
+       if ( gserialized_ndims(pg_geom_in) == 3 && gserialized_has_m(pg_geom_in) ) 
                PG_RETURN_POINTER(pg_geom_in);
 
        lwg_in = lwgeom_from_gserialized(pg_geom_in);
@@ -392,7 +392,7 @@ Datum LWGEOM_force_4d(PG_FUNCTION_ARGS)
        LWGEOM *lwg_in, *lwg_out;
 
        /* already 4d */
-       if ( pglwgeom_ndims(pg_geom_in) == 4 ) 
+       if ( gserialized_ndims(pg_geom_in) == 4 ) 
                PG_RETURN_POINTER(pg_geom_in);
 
        lwg_in = lwgeom_from_gserialized(pg_geom_in);
@@ -1935,7 +1935,7 @@ Datum LWGEOM_ndims(PG_FUNCTION_ARGS)
        int ret;
 
        in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-       ret = (pglwgeom_ndims(in));
+       ret = (gserialized_ndims(in));
        PG_FREE_IF_COPY(in, 0);
        PG_RETURN_INT16(ret);
 }
index 78fea64ea57abf089361a8eccad090b090c6c067..90173bc46fdb9ddc2450e9cd4a236a0c6b90500f 100644 (file)
@@ -825,7 +825,7 @@ Datum LWGEOM_asText(PG_FUNCTION_ARGS)
        lwgeom = lwgeom_from_gserialized(geom);
 
        /* Get a 2D version of the geometry if necessary */
-       if ( FLAGS_NDIMS(lwgeom->flags) > 2 )
+       if ( lwgeom_ndims(lwgeom) > 2 )
        {
                LWGEOM *lwgeom2d = lwgeom_force_2d(lwgeom);
                lwgeom_free(lwgeom);
@@ -862,7 +862,7 @@ Datum LWGEOM_asBinary(PG_FUNCTION_ARGS)
        lwgeom = lwgeom_from_gserialized(geom);
 
        /* Get a 2D version of the geometry if necessary */
-       if ( FLAGS_NDIMS(lwgeom->flags) > 2 )
+       if ( lwgeom_ndims(lwgeom) > 2 )
        {
                LWGEOM *lwgeom2d = lwgeom_force_2d(lwgeom);
                lwgeom_free(lwgeom);
index d1841f347b66307116db16da5488b25ad5c975cd..5e7c709b49780a476c59a8b68f16bebc3e271212 100644 (file)
@@ -6782,7 +6782,7 @@ Datum RASTER_asRaster(PG_FUNCTION_ARGS)
        geom = lwgeom_from_gserialized(pggeom);
 
        /* Get a 2D version of the geometry if necessary */
-       if (FLAGS_NDIMS(geom->flags) > 2) {
+       if (lwgeom_ndims(geom) > 2) {
                LWGEOM *geom2d = lwgeom_force_2d(geom);
                lwgeom_free(geom);
                geom = geom2d;