Definition at line 456 of file lwgeom_box3d.c.
457{
461 BOX3D *result = NULL;
463 int32_t srid;
464 int rv;
465
466
467 if (!box && !geom)
468 {
469 PG_RETURN_NULL();
470 }
471
472 else if (!geom)
473 {
474 result = palloc(
sizeof(
BOX3D));
475 memcpy(result, box,
sizeof(
BOX3D));
476 PG_RETURN_POINTER(result);
477 }
478
479
480
481
482
487
488
490 {
491 PG_FREE_IF_COPY(geom, 1);
492
493 if (!box)
494 PG_RETURN_NULL();
495 result = palloc(
sizeof(
BOX3D));
496 memcpy(result, box,
sizeof(
BOX3D));
497 PG_RETURN_POINTER(result);
498 }
499
500
501 if (!box)
502 {
503 PG_FREE_IF_COPY(geom, 1);
506 PG_RETURN_POINTER(result);
507 }
508
509 result = palloc(
sizeof(
BOX3D));
517
518 PG_FREE_IF_COPY(geom, 1);
519 PG_RETURN_POINTER(result);
520}
BOX3D * box3d_from_gbox(const GBOX *gbox)
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
int lwgeom_calculate_gbox(const LWGEOM *lwgeom, GBOX *gbox)
Calculate bounding box of a geometry, automatically taking into account whether it is cartesian or ge...
References box3d_from_gbox(), LW_FAILURE, lwgeom_calculate_gbox(), lwgeom_free(), lwgeom_from_gserialized(), BOX3D::srid, LWGEOM::srid, BOX3D::xmax, GBOX::xmax, BOX3D::xmin, GBOX::xmin, BOX3D::ymax, GBOX::ymax, BOX3D::ymin, GBOX::ymin, BOX3D::zmax, GBOX::zmax, BOX3D::zmin, and GBOX::zmin.