PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ 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 */
258  gbox->flags = gserialized1_get_lwflags(g);
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 */
271  if ( G1FLAGS_GET_GEODETIC(g->gflags) )
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.
Definition: gserialized1.c:39
#define G1FLAGS_GET_M(gflags)
Definition: gserialized1.h:17
#define G1FLAGS_GET_BBOX(gflags)
Definition: gserialized1.h:18
#define G1FLAGS_GET_GEODETIC(gflags)
Definition: gserialized1.h:19
#define G1FLAGS_GET_Z(gflags)
Definition: gserialized1.h:16
#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: