PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ gserialized1_from_gbox()

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

Definition at line 1021 of file gserialized1.c.

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

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