469 sfcgal_geometry_t *ret_geom = NULL;
479 return sfcgal_point_create();
489 return sfcgal_linestring_create();
499 return sfcgal_triangle_create();
507 uint32_t nrings = poly->
nrings - 1;
510 return sfcgal_polygon_create();
513 ret_geom = sfcgal_polygon_create_from_exterior_ring(exterior_ring);
515 for (i = 0; i < nrings; i++)
518 sfcgal_polygon_add_interior_ring(ret_geom, ring);
530 ret_geom = sfcgal_multi_point_create();
532 ret_geom = sfcgal_multi_linestring_create();
534 ret_geom = sfcgal_multi_polygon_create();
536 ret_geom = sfcgal_geometry_collection_create();
539 for (i = 0; i < lwc->
ngeoms; i++)
542 sfcgal_geometry_collection_add_geometry(ret_geom, g);
552 ret_geom = sfcgal_polyhedral_surface_create();
554 for (i = 0; i < lwp->
ngeoms; i++)
557 sfcgal_polyhedral_surface_add_polygon(ret_geom, g);
563 return sfcgal_solid_create_from_exterior_shell(ret_geom);
573 ret_geom = sfcgal_triangulated_surface_create();
575 for (i = 0; i < lwp->
ngeoms; i++)
578 sfcgal_triangulated_surface_add_triangle(ret_geom, g);
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
#define POLYHEDRALSURFACETYPE
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
#define FLAGS_GET_SOLID(flags)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
sfcgal_geometry_t * LWGEOM2SFCGAL(const LWGEOM *geom)
static sfcgal_geometry_t * ptarray_to_SFCGAL(const POINTARRAY *pa, int type)
static int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members)