/*
* Empty geometry constructors.
*/
+extern LWGEOM* lwgeom_construct_empty(uint8_t type, int srid, char hasz, char hasm);
extern LWPOINT* lwpoint_construct_empty(int srid, char hasz, char hasm);
extern LWLINE* lwline_construct_empty(int srid, char hasz, char hasm);
extern LWPOLY* lwpoly_construct_empty(int srid, char hasz, char hasm);
}
+LWGEOM *
+lwgeom_construct_empty(uint8_t type, int srid, char hasz, char hasm)
+{
+ switch(type)
+ {
+ case POINTTYPE:
+ return lwpoint_as_lwgeom(lwpoint_construct_empty(srid, hasz, hasm));
+ case LINETYPE:
+ return lwline_as_lwgeom(lwline_construct_empty(srid, hasz, hasm));
+ case POLYGONTYPE:
+ return lwpoly_as_lwgeom(lwpoly_construct_empty(srid, hasz, hasm));
+ case CURVEPOLYTYPE:
+ return lwcurvepoly_as_lwgeom(lwcurvepoly_construct_empty(srid, hasz, hasm));
+ case CIRCSTRINGTYPE:
+ return lwcircstring_as_lwgeom(lwcircstring_construct_empty(srid, hasz, hasm));
+ case TRIANGLETYPE:
+ return lwtriangle_as_lwgeom(lwtriangle_construct_empty(srid, hasz, hasm));
+ case COMPOUNDTYPE:
+ case MULTIPOINTTYPE:
+ case MULTILINETYPE:
+ case MULTIPOLYGONTYPE:
+ case COLLECTIONTYPE:
+ return lwcollection_as_lwgeom(lwcollection_construct_empty(type, srid, hasz, hasm));
+ default:
+ lwerror("lwgeom_construct_empty: unsupported geometry type: %s",
+ lwtype_name(type));
+ return NULL;
+ }
+}
+