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

◆ gserialized1_read_gbox_p()

int gserialized1_read_gbox_p ( const GSERIALIZED g,
GBOX gbox 
)
static

Definition at line 252 of file gserialized1.c.

253{
254
255 /* Null input! */
256 if ( ! ( g && gbox ) ) return LW_FAILURE;
257
258 /* Initialize the flags on the box */
260
261 /* Has pre-calculated box */
262 if ( G1FLAGS_GET_BBOX(g->gflags) )
263 {
264 int i = 0;
265 float *fbox = (float*)(g->data);
266 gbox->xmin = fbox[i++];
267 gbox->xmax = fbox[i++];
268 gbox->ymin = fbox[i++];
269 gbox->ymax = fbox[i++];
270
271 /* Geodetic? Read next dimension (geocentric Z) and return */
273 {
274 gbox->zmin = fbox[i++];
275 gbox->zmax = fbox[i++];
276 return LW_SUCCESS;
277 }
278 /* Cartesian? Read extra dimensions (if there) and return */
279 if ( G1FLAGS_GET_Z(g->gflags) )
280 {
281 gbox->zmin = fbox[i++];
282 gbox->zmax = fbox[i++];
283 }
284 if ( G1FLAGS_GET_M(g->gflags) )
285 {
286 gbox->mmin = fbox[i++];
287 gbox->mmax = fbox[i++];
288 }
289 return LW_SUCCESS;
290 }
291 return LW_FAILURE;
292}
lwflags_t gserialized1_get_lwflags(const GSERIALIZED *g)
Read the flags from a GSERIALIZED and return a standard lwflag integer.
#define G1FLAGS_GET_M(gflags)
#define G1FLAGS_GET_BBOX(gflags)
#define G1FLAGS_GET_GEODETIC(gflags)
#define G1FLAGS_GET_Z(gflags)
#define LW_FAILURE
Definition liblwgeom.h:96
#define LW_SUCCESS
Definition liblwgeom.h:97
double ymax
Definition liblwgeom.h:357
double zmax
Definition liblwgeom.h:359
double xmax
Definition liblwgeom.h:355
double zmin
Definition liblwgeom.h:358
double mmax
Definition liblwgeom.h:361
double ymin
Definition liblwgeom.h:356
double xmin
Definition liblwgeom.h:354
double mmin
Definition liblwgeom.h:360
lwflags_t flags
Definition liblwgeom.h:353
uint8_t data[1]
Definition liblwgeom.h:447
uint8_t gflags
Definition liblwgeom.h:446

References GSERIALIZED::data, GBOX::flags, G1FLAGS_GET_BBOX, G1FLAGS_GET_GEODETIC, G1FLAGS_GET_M, G1FLAGS_GET_Z, GSERIALIZED::gflags, gserialized1_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 gserialized1_fast_gbox_p(), gserialized1_get_gbox_p(), lwgeom_from_gserialized1(), and test_gbox_same_2d().

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