PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ gserialized1_from_gbox()

static size_t gserialized1_from_gbox ( const GBOX gbox,
uint8_t *  buf 
)
static

Definition at line 1022 of file gserialized1.c.

1023 {
1024  uint8_t *loc = buf;
1025  float f;
1026  size_t return_size;
1027 
1028  assert(buf);
1029 
1030  f = next_float_down(gbox->xmin);
1031  memcpy(loc, &f, sizeof(float));
1032  loc += sizeof(float);
1033 
1034  f = next_float_up(gbox->xmax);
1035  memcpy(loc, &f, sizeof(float));
1036  loc += sizeof(float);
1037 
1038  f = next_float_down(gbox->ymin);
1039  memcpy(loc, &f, sizeof(float));
1040  loc += sizeof(float);
1041 
1042  f = next_float_up(gbox->ymax);
1043  memcpy(loc, &f, sizeof(float));
1044  loc += sizeof(float);
1045 
1046  if ( FLAGS_GET_GEODETIC(gbox->flags) )
1047  {
1048  f = next_float_down(gbox->zmin);
1049  memcpy(loc, &f, sizeof(float));
1050  loc += sizeof(float);
1051 
1052  f = next_float_up(gbox->zmax);
1053  memcpy(loc, &f, sizeof(float));
1054  loc += sizeof(float);
1055 
1056  return_size = (size_t)(loc - buf);
1057  LWDEBUGF(4, "returning size %d", return_size);
1058  return return_size;
1059  }
1060 
1061  if ( FLAGS_GET_Z(gbox->flags) )
1062  {
1063  f = next_float_down(gbox->zmin);
1064  memcpy(loc, &f, sizeof(float));
1065  loc += sizeof(float);
1066 
1067  f = next_float_up(gbox->zmax);
1068  memcpy(loc, &f, sizeof(float));
1069  loc += sizeof(float);
1070 
1071  }
1072 
1073  if ( FLAGS_GET_M(gbox->flags) )
1074  {
1075  f = next_float_down(gbox->mmin);
1076  memcpy(loc, &f, sizeof(float));
1077  loc += sizeof(float);
1078 
1079  f = next_float_up(gbox->mmax);
1080  memcpy(loc, &f, sizeof(float));
1081  loc += sizeof(float);
1082  }
1083  return_size = (size_t)(loc - buf);
1084  LWDEBUGF(4, "returning size %d", return_size);
1085  return return_size;
1086 }
#define FLAGS_GET_Z(flags)
Definition: liblwgeom.h:165
#define FLAGS_GET_M(flags)
Definition: liblwgeom.h:166
float next_float_up(double d)
Definition: lwgeom_api.c:75
float next_float_down(double d)
Definition: lwgeom_api.c:54
#define FLAGS_GET_GEODETIC(flags)
Definition: liblwgeom.h:168
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:88
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

References GBOX::flags, FLAGS_GET_GEODETIC, FLAGS_GET_M, FLAGS_GET_Z, LWDEBUGF, GBOX::mmax, GBOX::mmin, next_float_down(), next_float_up(), GBOX::xmax, GBOX::xmin, GBOX::ymax, GBOX::ymin, GBOX::zmax, and GBOX::zmin.

Referenced by gserialized1_from_lwgeom().

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