PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ LWGEOM_to_BOX()

Datum LWGEOM_to_BOX ( PG_FUNCTION_ARGS  )

Definition at line 1664 of file lwgeom_functions_basic.c.

1665{
1666 GSERIALIZED *pg_lwgeom = PG_GETARG_GSERIALIZED_P(0);
1667 LWGEOM *lwgeom = lwgeom_from_gserialized(pg_lwgeom);
1668 GBOX gbox;
1669 int result;
1670 BOX *out = NULL;
1671
1672 /* Zero out flags */
1673 gbox_init(&gbox);
1674
1675 /* Calculate the GBOX of the geometry */
1676 result = lwgeom_calculate_gbox(lwgeom, &gbox);
1677
1678 /* Clean up memory */
1679 lwfree(lwgeom);
1680 PG_FREE_IF_COPY(pg_lwgeom, 0);
1681
1682 /* Null on failure */
1683 if (!result)
1684 PG_RETURN_NULL();
1685
1686 out = lwalloc(sizeof(BOX));
1687 out->low.x = gbox.xmin;
1688 out->low.y = gbox.ymin;
1689 out->high.x = gbox.xmax;
1690 out->high.y = gbox.ymax;
1691 PG_RETURN_POINTER(out);
1692}
void gbox_init(GBOX *gbox)
Zero out all the entries in the GBOX.
Definition gbox.c:40
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void * lwalloc(size_t size)
Definition lwutil.c:227
void lwfree(void *mem)
Definition lwutil.c:242
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...
Definition lwgeom.c:737
double ymax
Definition liblwgeom.h:343
double xmax
Definition liblwgeom.h:341
double ymin
Definition liblwgeom.h:342
double xmin
Definition liblwgeom.h:340

References gbox_init(), lwalloc(), lwfree(), lwgeom_calculate_gbox(), lwgeom_from_gserialized(), GBOX::xmax, GBOX::xmin, GBOX::ymax, and GBOX::ymin.

Here is the call graph for this function: