srid = gserialized_get_srid(geom1);
+ LWGEOM *lwgeom = lwgeom_from_gserialized(geom1);
+ if ( ! lwgeom ) {
+ lwerror("POSTGIS2GEOS: unable to deserialize input");
+ return NULL;
+ }
+
+ /* GEOS doesn't do triangle type, so we special case that here */
+ if (lwgeom->type == TRIANGLETYPE) {
+ lwgeom->type = LINETYPE;
+ result = geometry_serialize(lwgeom);
+ lwgeom_free(lwgeom);
+ PG_RETURN_POINTER(result);
+ }
+
initGEOS(lwnotice, lwgeom_geos_error);
- g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
+ g1 = LWGEOM2GEOS(lwgeom);
+ lwgeom_free(lwgeom);
if ( 0 == g1 ) /* exception thrown at construction */
{
regress_management \
dump \
dumppoints \
+ boundary \
wmsservers \
wkt \
wkb \
--- /dev/null
+SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 1)')));
+SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))')));
+SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, 1 1 1))')));
+SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));
+SELECT ST_AsText(ST_Boundary(ST_GeomFromText('TRIANGLE((1 1,0 0, -1 1, 1 1))')));
--- /dev/null
+MULTIPOINT(1 1,-1 1)
+LINESTRING(1 1,0 0,-1 1,1 1)
+LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)
+MULTIPOINT(-1 1 1,1 1 0.75)
+LINESTRING(1 1,0 0,-1 1,1 1)