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

◆ lwpolygon_calculate_gbox_geodetic()

static int lwpolygon_calculate_gbox_geodetic ( const LWPOLY poly,
GBOX gbox 
)
static

Definition at line 2804 of file lwgeodetic.c.

2805{
2806 GBOX ringbox;
2807 uint32_t i;
2808 int first = LW_TRUE;
2809 assert(poly);
2810 if ( poly->nrings == 0 )
2811 return LW_FAILURE;
2812 ringbox.flags = gbox->flags;
2813 for ( i = 0; i < poly->nrings; i++ )
2814 {
2815 if ( ptarray_calculate_gbox_geodetic(poly->rings[i], &ringbox) == LW_FAILURE )
2816 return LW_FAILURE;
2817 if ( first )
2818 {
2819 gbox_duplicate(&ringbox, gbox);
2820 first = LW_FALSE;
2821 }
2822 else
2823 {
2824 gbox_merge(&ringbox, gbox);
2825 }
2826 }
2827
2828 /* If the box wraps a poly, push that axis to the absolute min/max as appropriate */
2829 gbox_check_poles(gbox);
2830
2831 return LW_SUCCESS;
2832}
int gbox_merge(const GBOX *new_box, GBOX *merge_box)
Update the merged GBOX to be large enough to include itself and the new box.
Definition gbox.c:257
void gbox_duplicate(const GBOX *original, GBOX *duplicate)
Copy the values of original GBOX into duplicate.
Definition gbox.c:445
#define LW_FALSE
Definition liblwgeom.h:94
#define LW_FAILURE
Definition liblwgeom.h:96
#define LW_SUCCESS
Definition liblwgeom.h:97
#define LW_TRUE
Return types for functions with status returns.
Definition liblwgeom.h:93
static int gbox_check_poles(GBOX *gbox)
Check to see if this geocentric gbox is wrapped around a pole.
Definition lwgeodetic.c:316
int ptarray_calculate_gbox_geodetic(const POINTARRAY *pa, GBOX *gbox)
Calculate geodetic (x/y/z) box and add values to gbox.
lwflags_t flags
Definition liblwgeom.h:353
POINTARRAY ** rings
Definition liblwgeom.h:519
uint32_t nrings
Definition liblwgeom.h:524

References GBOX::flags, gbox_check_poles(), gbox_duplicate(), gbox_merge(), LW_FAILURE, LW_FALSE, LW_SUCCESS, LW_TRUE, LWPOLY::nrings, ptarray_calculate_gbox_geodetic(), and LWPOLY::rings.

Referenced by lwgeom_calculate_gbox_geodetic().

Here is the call graph for this function:
Here is the caller graph for this function: