PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ gserialized2_from_gbox()

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

Definition at line 1097 of file gserialized2.c.

1098 {
1099  uint8_t *loc = buf;
1100  float f;
1101  size_t return_size;
1102 
1103  assert(buf);
1104 
1105  f = next_float_down(gbox->xmin);
1106  memcpy(loc, &f, sizeof(float));
1107  loc += sizeof(float);
1108 
1109  f = next_float_up(gbox->xmax);
1110  memcpy(loc, &f, sizeof(float));
1111  loc += sizeof(float);
1112 
1113  f = next_float_down(gbox->ymin);
1114  memcpy(loc, &f, sizeof(float));
1115  loc += sizeof(float);
1116 
1117  f = next_float_up(gbox->ymax);
1118  memcpy(loc, &f, sizeof(float));
1119  loc += sizeof(float);
1120 
1121  if (FLAGS_GET_GEODETIC(gbox->flags))
1122  {
1123  f = next_float_down(gbox->zmin);
1124  memcpy(loc, &f, sizeof(float));
1125  loc += sizeof(float);
1126 
1127  f = next_float_up(gbox->zmax);
1128  memcpy(loc, &f, sizeof(float));
1129  loc += sizeof(float);
1130 
1131  return_size = (size_t)(loc - buf);
1132  LWDEBUGF(4, "returning size %d", return_size);
1133  return return_size;
1134  }
1135 
1136  if (FLAGS_GET_Z(gbox->flags))
1137  {
1138  f = next_float_down(gbox->zmin);
1139  memcpy(loc, &f, sizeof(float));
1140  loc += sizeof(float);
1141 
1142  f = next_float_up(gbox->zmax);
1143  memcpy(loc, &f, sizeof(float));
1144  loc += sizeof(float);
1145 
1146  }
1147 
1148  if (FLAGS_GET_M(gbox->flags))
1149  {
1150  f = next_float_down(gbox->mmin);
1151  memcpy(loc, &f, sizeof(float));
1152  loc += sizeof(float);
1153 
1154  f = next_float_up(gbox->mmax);
1155  memcpy(loc, &f, sizeof(float));
1156  loc += sizeof(float);
1157  }
1158  return_size = (size_t)(loc - buf);
1159  LWDEBUGF(4, "returning size %d", return_size);
1160  return return_size;
1161 }
#define FLAGS_GET_Z(flags)
Definition: liblwgeom.h:179
#define FLAGS_GET_M(flags)
Definition: liblwgeom.h:180
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:182
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:88
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

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 gserialized2_from_lwgeom().

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