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

◆ gbox_merge()

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 at line 257 of file gbox.c.

258{
259 assert(merge_box);
260
261 if ( FLAGS_GET_ZM(merge_box->flags) != FLAGS_GET_ZM(new_box->flags) )
262 return LW_FAILURE;
263
264 if ( new_box->xmin < merge_box->xmin) merge_box->xmin = new_box->xmin;
265 if ( new_box->ymin < merge_box->ymin) merge_box->ymin = new_box->ymin;
266 if ( new_box->xmax > merge_box->xmax) merge_box->xmax = new_box->xmax;
267 if ( new_box->ymax > merge_box->ymax) merge_box->ymax = new_box->ymax;
268
269 if ( FLAGS_GET_Z(merge_box->flags) || FLAGS_GET_GEODETIC(merge_box->flags) )
270 {
271 if ( new_box->zmin < merge_box->zmin) merge_box->zmin = new_box->zmin;
272 if ( new_box->zmax > merge_box->zmax) merge_box->zmax = new_box->zmax;
273 }
274 if ( FLAGS_GET_M(merge_box->flags) )
275 {
276 if ( new_box->mmin < merge_box->mmin) merge_box->mmin = new_box->mmin;
277 if ( new_box->mmax > merge_box->mmax) merge_box->mmax = new_box->mmax;
278 }
279
280 return LW_SUCCESS;
281}
#define LW_FAILURE
Definition liblwgeom.h:110
#define LW_SUCCESS
Definition liblwgeom.h:111
#define FLAGS_GET_Z(flags)
Definition liblwgeom.h:179
#define FLAGS_GET_M(flags)
Definition liblwgeom.h:180
#define FLAGS_GET_ZM(flags)
Definition liblwgeom.h:194
#define FLAGS_GET_GEODETIC(flags)
Definition liblwgeom.h:182
double ymax
Definition liblwgeom.h:343
double zmax
Definition liblwgeom.h:345
double xmax
Definition liblwgeom.h:341
double zmin
Definition liblwgeom.h:344
double mmax
Definition liblwgeom.h:347
double ymin
Definition liblwgeom.h:342
double xmin
Definition liblwgeom.h:340
double mmin
Definition liblwgeom.h:346
lwflags_t flags
Definition liblwgeom.h:339

References GBOX::flags, FLAGS_GET_GEODETIC, FLAGS_GET_M, FLAGS_GET_Z, FLAGS_GET_ZM, LW_FAILURE, LW_SUCCESS, GBOX::mmax, GBOX::mmin, GBOX::xmax, GBOX::xmin, GBOX::ymax, GBOX::ymin, GBOX::zmax, and GBOX::zmin.

Referenced by _lwt_EdgeRingGetBbox(), _lwt_RemEdge(), lwcircstring_calculate_gbox_cartesian(), lwcollection_calculate_gbox_cartesian(), lwcollection_calculate_gbox_geodetic(), LWGEOM_collect_garray(), lwpolygon_calculate_gbox_geodetic(), and ptarray_calculate_gbox_geodetic().

Here is the caller graph for this function: