]> granicus.if.org Git - postgis/commitdiff
Dropped SRID argument from point constructor.
authorSandro Santilli <strk@keybit.net>
Wed, 13 Oct 2004 17:21:49 +0000 (17:21 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 13 Oct 2004 17:21:49 +0000 (17:21 +0000)
Unified procedure name to 'makepoint' for 2d,3dz,4d and 'makepointm' for 3dm.

git-svn-id: http://svn.osgeo.org/postgis/trunk@992 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/lwgeom_functions_basic.c
lwgeom/lwpostgis.sql.in

index 5bb63bf96a5ed1bd97685ef875858ebeb7ca38f8..f2f5e8915526f7fe3723ec839a02054fb843d48d 100644 (file)
@@ -50,10 +50,8 @@ Datum LWGEOM_reverse(PG_FUNCTION_ARGS);
 Datum LWGEOM_forceRHR_poly(PG_FUNCTION_ARGS);
 Datum LWGEOM_noop(PG_FUNCTION_ARGS);
 Datum LWGEOM_zmflag(PG_FUNCTION_ARGS);
-Datum LWGEOM_makepoint2d(PG_FUNCTION_ARGS);
-Datum LWGEOM_makepoint3dz(PG_FUNCTION_ARGS);
-Datum LWGEOM_makepoint3dm(PG_FUNCTION_ARGS);
-Datum LWGEOM_makepoint4d(PG_FUNCTION_ARGS);
+Datum LWGEOM_makepoint(PG_FUNCTION_ARGS);
+Datum LWGEOM_makepointm(PG_FUNCTION_ARGS);
 
 
 /*------------------------------------------------------------------*/
@@ -2080,44 +2078,32 @@ Datum LWGEOM_same(PG_FUNCTION_ARGS)
         PG_RETURN_BOOL(result);
 }
 
-PG_FUNCTION_INFO_V1(LWGEOM_makepoint2d);
-Datum LWGEOM_makepoint2d(PG_FUNCTION_ARGS)
+PG_FUNCTION_INFO_V1(LWGEOM_makepoint);
+Datum LWGEOM_makepoint(PG_FUNCTION_ARGS)
 {
-       double x,y;
-       int SRID;
-       LWPOINT *point;
-       PG_LWGEOM *result;
-       size_t size;
-
-       SRID = PG_GETARG_INT32(0);
-       x = PG_GETARG_FLOAT8(1);
-       y = PG_GETARG_FLOAT8(2);
-
-       point = make_lwpoint2d(SRID, x, y);
-
-       size = lwpoint_serialize_size(point);
-       result = (PG_LWGEOM *)palloc(size+4);
-       result->size = (size+4);
-       lwpoint_serialize_buf(point, SERIALIZED_FORM(result), NULL);
-
-       PG_RETURN_POINTER(result);
-}
-
-PG_FUNCTION_INFO_V1(LWGEOM_makepoint3dz);
-Datum LWGEOM_makepoint3dz(PG_FUNCTION_ARGS)
-{
-       double x,y,z;
-       int SRID;
+       double x,y,z,m;
        LWPOINT *point;
        PG_LWGEOM *result;
        size_t size;
 
-       SRID = PG_GETARG_INT32(0);
-       x = PG_GETARG_FLOAT8(1);
-       y = PG_GETARG_FLOAT8(2);
-       z = PG_GETARG_FLOAT8(3);
+       x = PG_GETARG_FLOAT8(0);
+       y = PG_GETARG_FLOAT8(1);
 
-       point = make_lwpoint3dz(SRID, x, y, z);
+       if ( PG_NARGS() == 2 ) point = make_lwpoint2d(-1, x, y);
+       else if ( PG_NARGS() == 3 ) {
+               z = PG_GETARG_FLOAT8(2);
+               point = make_lwpoint3dz(-1, x, y, z);
+       }
+       else if ( PG_NARGS() == 4 ) {
+               z = PG_GETARG_FLOAT8(2);
+               m = PG_GETARG_FLOAT8(3);
+               point = make_lwpoint4d(-1, x, y, z, m);
+       }
+       else {
+               elog(ERROR, "LWGEOM_makepoint: unsupported number of args: %d",
+                       PG_NARGS());
+               PG_RETURN_NULL();
+       }
 
        size = lwpoint_serialize_size(point);
        result = (PG_LWGEOM *)palloc(size+4);
@@ -2136,10 +2122,9 @@ Datum LWGEOM_makepoint3dm(PG_FUNCTION_ARGS)
        PG_LWGEOM *result;
        size_t size;
 
-       SRID = PG_GETARG_INT32(0);
-       x = PG_GETARG_FLOAT8(1);
-       y = PG_GETARG_FLOAT8(2);
-       m = PG_GETARG_FLOAT8(3);
+       x = PG_GETARG_FLOAT8(0);
+       y = PG_GETARG_FLOAT8(1);
+       m = PG_GETARG_FLOAT8(2);
 
        point = make_lwpoint3dm(SRID, x, y, m);
 
@@ -2151,27 +2136,3 @@ Datum LWGEOM_makepoint3dm(PG_FUNCTION_ARGS)
        PG_RETURN_POINTER(result);
 }
 
-PG_FUNCTION_INFO_V1(LWGEOM_makepoint4d);
-Datum LWGEOM_makepoint4d(PG_FUNCTION_ARGS)
-{
-       double x,y,z,m;
-       int SRID;
-       LWPOINT *point;
-       PG_LWGEOM *result;
-       size_t size;
-
-       SRID = PG_GETARG_INT32(0);
-       x = PG_GETARG_FLOAT8(1);
-       y = PG_GETARG_FLOAT8(2);
-       z = PG_GETARG_FLOAT8(3);
-       m = PG_GETARG_FLOAT8(4);
-
-       point = make_lwpoint4d(SRID, x, y, z, m);
-
-       size = lwpoint_serialize_size(point);
-       result = (PG_LWGEOM *)palloc(size+4);
-       result->size = (size+4);
-       lwpoint_serialize_buf(point, SERIALIZED_FORM(result), NULL);
-
-       PG_RETURN_POINTER(result);
-}
index 8efa5734348b0af986ab9a0b753b597ff07eae6b..4d9abfd2083b079cfabf9d954b954657609e4f1c 100644 (file)
@@ -1652,24 +1652,24 @@ CREATEFUNCTION zmflag(geometry)
 -- CONSTRUCTORS
 ------------------------------------------------------------------------
 
-CREATEFUNCTION makepoint2d(integer, float8, float8)
+CREATEFUNCTION makepoint(float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint2d'
+       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
        LANGUAGE 'C' WITH (iscachable,isstrict);
 
-CREATEFUNCTION makepoint3dz(integer, float8, float8, float8)
+CREATEFUNCTION makepoint(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dz'
+       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
        LANGUAGE 'C' WITH (iscachable,isstrict);
 
-CREATEFUNCTION makepoint3dm(integer, float8, float8, float8)
+CREATEFUNCTION makepoint(float8, float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
+       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
        LANGUAGE 'C' WITH (iscachable,isstrict);
 
-CREATEFUNCTION makepoint4d(integer, float8, float8, float8, float8)
+CREATEFUNCTION makePointM(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint4d'
+       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
        LANGUAGE 'C' WITH (iscachable,isstrict);
 
 ------------------------------------------------------------------------