Convert a PostGIS pointarray to SFCGAL structure.
266{
268 int is_3d, is_measured;
269 uint32_t i;
270
271 assert(pa);
272
275
276 switch (type)
277 {
281 }
282 break;
284 sfcgal_geometry_t *line = sfcgal_linestring_create();
285 for (i = 0; i < pa->
npoints; i++)
286 {
288 sfcgal_linestring_add_point(
289 line,
291 }
292 return line;
293 }
294 break;
296 sfcgal_geometry_t *triangle = sfcgal_triangle_create();
297 for (i = 0; i < 3; i++)
298 {
300 sfcgal_geometry_t *vertex =
302 if (vertex)
303 {
304 sfcgal_triangle_set_vertex(triangle, i, vertex);
305 sfcgal_geometry_delete(vertex);
306 }
307 }
308 return triangle;
309 }
310 break;
311 default:
312 lwerror(
"ptarray_to_SFCGAL: Unknown Type");
313 return NULL;
314 }
315}
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
#define FLAGS_GET_Z(flags)
#define FLAGS_GET_M(flags)
int getPoint4d_p(const POINTARRAY *pa, uint32_t n, POINT4D *point)
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static sfcgal_geometry_t * create_sfcgal_point_by_dimensions(double x, double y, double z, double m, int is_3d, int is_measured)
Create a SFCGAL point based on dimensional flags (XY, XYZ, XYM, XYZM).