]> granicus.if.org Git - postgis/commitdiff
Implement lwgeom_same for circularstring (#1475)
authorSandro Santilli <strk@keybit.net>
Mon, 16 Jan 2012 10:11:44 +0000 (10:11 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 16 Jan 2012 10:11:44 +0000 (10:11 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8828 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/liblwgeom.h.in
liblwgeom/lwgeom.c
regress/wkb.sql
regress/wkb_expected

index bdcdf3aca870224900f62dbbc30159a337aa962f..c5282f446cef182767b57c9a14f5f52e5b075dd5 100644 (file)
@@ -1121,6 +1121,7 @@ char lwline_same(const LWLINE *p1, const LWLINE *p2);
 char lwpoly_same(const LWPOLY *p1, const LWPOLY *p2);
 char lwtriangle_same(const LWTRIANGLE *p1, const LWTRIANGLE *p2);
 char lwcollection_same(const LWCOLLECTION *p1, const LWCOLLECTION *p2);
+char lwcircstring_same(const LWCIRCSTRING *p1, const LWCIRCSTRING *p2);
 
 
 /**
index 7ae3ed67f54b5d0780fe9235b36d61a5b7d4d33e..b5d0a6e4feb074a67e7ad981832abecfa7e93d90 100644 (file)
@@ -510,6 +510,9 @@ lwgeom_same(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
        case TRIANGLETYPE:
                return lwtriangle_same((LWTRIANGLE *)lwgeom1,
                                       (LWTRIANGLE *)lwgeom2);
+       case CIRCSTRINGTYPE:
+               return lwcircstring_same((LWCIRCSTRING *)lwgeom1,
+                                        (LWCIRCSTRING *)lwgeom2);
        case MULTIPOINTTYPE:
        case MULTILINETYPE:
        case MULTIPOLYGONTYPE:
index 325795b2a3e2f90c630a3968b7be067f279d4c17..1057f26b37e7c8800342e807c944afef50d5a43f 100644 (file)
@@ -281,3 +281,25 @@ select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
           encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
  'GEOMETRYCOLLECTION ZM EMPTY'
 ::text as g ) as foo;
+
+-- CIRCULARSTRING
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'CIRCULARSTRING EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'CIRCULARSTRING Z EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'CIRCULARSTRING M EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'CIRCULARSTRING ZM EMPTY'
+::text as g ) as foo;
index 2943b4947595e7a72dfa3993ec228d5654a48ee8..9da5ab8a5edaf31c040c06fe35d890df46c34cba 100644 (file)
@@ -52,3 +52,7 @@ GEOMETRYCOLLECTION EMPTY|010700000000000000|t|000000000700000000
 GEOMETRYCOLLECTION Z EMPTY|01ef03000000000000|t|00000003ef00000000
 GEOMETRYCOLLECTION M EMPTY|01d707000000000000|t|00000007d700000000
 GEOMETRYCOLLECTION ZM EMPTY|01bf0b000000000000|t|0000000bbf00000000
+CIRCULARSTRING EMPTY|010800000000000000|t|000000000800000000
+CIRCULARSTRING Z EMPTY|01f003000000000000|t|00000003f000000000
+CIRCULARSTRING M EMPTY|01d807000000000000|t|00000007d800000000
+CIRCULARSTRING ZM EMPTY|01c00b000000000000|t|0000000bc000000000