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

◆ gserialized2_read_gbox_p()

int gserialized2_read_gbox_p ( const GSERIALIZED g,
GBOX gbox 
)
static

Definition at line 346 of file gserialized2.c.

347{
348 uint8_t gflags = g->gflags;
349 /* Null input! */
350 if (!(g && gbox)) return LW_FAILURE;
351
352 /* Initialize the flags on the box */
354
355 /* Has pre-calculated box */
356 if (G2FLAGS_GET_BBOX(gflags))
357 {
358 int i = 0;
359 const float *fbox = gserialized2_get_float_box_p(g, NULL);
360 gbox->xmin = fbox[i++];
361 gbox->xmax = fbox[i++];
362 gbox->ymin = fbox[i++];
363 gbox->ymax = fbox[i++];
364
365 /* Geodetic? Read next dimension (geocentric Z) and return */
366 if (G2FLAGS_GET_GEODETIC(gflags))
367 {
368 gbox->zmin = fbox[i++];
369 gbox->zmax = fbox[i++];
370 return LW_SUCCESS;
371 }
372 /* Cartesian? Read extra dimensions (if there) and return */
373 if (G2FLAGS_GET_Z(gflags))
374 {
375 gbox->zmin = fbox[i++];
376 gbox->zmax = fbox[i++];
377 }
378 if (G2FLAGS_GET_M(gflags))
379 {
380 gbox->mmin = fbox[i++];
381 gbox->mmax = fbox[i++];
382 }
383 return LW_SUCCESS;
384 }
385 return LW_FAILURE;
386}
const float * gserialized2_get_float_box_p(const GSERIALIZED *g, size_t *ndims)
Point into the float box area of the serialization.
lwflags_t gserialized2_get_lwflags(const GSERIALIZED *g)
Read the flags from a GSERIALIZED and return a standard lwflag integer.
#define G2FLAGS_GET_BBOX(gflags)
#define G2FLAGS_GET_GEODETIC(gflags)
#define G2FLAGS_GET_Z(gflags)
#define G2FLAGS_GET_M(gflags)
#define LW_FAILURE
Definition liblwgeom.h:110
#define LW_SUCCESS
Definition liblwgeom.h:111
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
uint8_t gflags
Definition liblwgeom.h:432

References GBOX::flags, G2FLAGS_GET_BBOX, G2FLAGS_GET_GEODETIC, G2FLAGS_GET_M, G2FLAGS_GET_Z, GSERIALIZED::gflags, gserialized2_get_float_box_p(), gserialized2_get_lwflags(), LW_FAILURE, LW_SUCCESS, GBOX::mmax, GBOX::mmin, GBOX::xmax, GBOX::xmin, GBOX::ymax, GBOX::ymin, GBOX::zmax, and GBOX::zmin.

Referenced by gserialized2_fast_gbox_p(), gserialized2_get_gbox_p(), and lwgeom_from_gserialized2().

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