PostGIS 3.0.6dev-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 251 of file gserialized1.c.

252{
253
254 /* Null input! */
255 if ( ! ( g && gbox ) ) return LW_FAILURE;
256
257 /* Initialize the flags on the box */
259
260 /* Has pre-calculated box */
261 if ( G1FLAGS_GET_BBOX(g->gflags) )
262 {
263 int i = 0;
264 float *fbox = (float*)(g->data);
265 gbox->xmin = fbox[i++];
266 gbox->xmax = fbox[i++];
267 gbox->ymin = fbox[i++];
268 gbox->ymax = fbox[i++];
269
270 /* Geodetic? Read next dimension (geocentric Z) and return */
272 {
273 gbox->zmin = fbox[i++];
274 gbox->zmax = fbox[i++];
275 return LW_SUCCESS;
276 }
277 /* Cartesian? Read extra dimensions (if there) and return */
278 if ( G1FLAGS_GET_Z(g->gflags) )
279 {
280 gbox->zmin = fbox[i++];
281 gbox->zmax = fbox[i++];
282 }
283 if ( G1FLAGS_GET_M(g->gflags) )
284 {
285 gbox->mmin = fbox[i++];
286 gbox->mmax = fbox[i++];
287 }
288 return LW_SUCCESS;
289 }
290 return LW_FAILURE;
291}
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: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 data[1]
Definition liblwgeom.h:433
uint8_t gflags
Definition liblwgeom.h:432

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: