467 sfcgal_geometry_t *ret_geom = NULL;
477 return sfcgal_point_create();
487 return sfcgal_linestring_create();
497 return sfcgal_triangle_create();
505 uint32_t nrings = poly->
nrings - 1;
508 return sfcgal_polygon_create();
511 ret_geom = sfcgal_polygon_create_from_exterior_ring(exterior_ring);
513 for (i = 0; i < nrings; i++)
516 sfcgal_polygon_add_interior_ring(ret_geom, ring);
528 ret_geom = sfcgal_multi_point_create();
530 ret_geom = sfcgal_multi_linestring_create();
532 ret_geom = sfcgal_multi_polygon_create();
534 ret_geom = sfcgal_geometry_collection_create();
537 for (i = 0; i < lwc->
ngeoms; i++)
540 sfcgal_geometry_collection_add_geometry(ret_geom, g);
550 ret_geom = sfcgal_polyhedral_surface_create();
552 for (i = 0; i < lwp->
ngeoms; i++)
555 sfcgal_polyhedral_surface_add_polygon(ret_geom, g);
561 return sfcgal_solid_create_from_exterior_shell(ret_geom);
571 ret_geom = sfcgal_triangulated_surface_create();
573 for (i = 0; i < lwp->
ngeoms; i++)
576 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)