PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ gserialized2_from_gbox()

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

Definition at line 1100 of file gserialized2.c.

1101{
1102 uint8_t *loc = buf;
1103 float *f;
1104 uint8_t i = 0;
1105 size_t return_size;
1106
1107 assert(buf);
1108
1109 f = (float *)buf;
1110 f[i++] = next_float_down(gbox->xmin);
1111 f[i++] = next_float_up(gbox->xmax);
1112 f[i++] = next_float_down(gbox->ymin);
1113 f[i++] = next_float_up(gbox->ymax);
1114 loc += 4 * sizeof(float);
1115
1116 if (FLAGS_GET_GEODETIC(gbox->flags))
1117 {
1118 f[i++] = next_float_down(gbox->zmin);
1119 f[i++] = next_float_up(gbox->zmax);
1120 loc += 2 * sizeof(float);
1121
1122 return_size = (size_t)(loc - buf);
1123 LWDEBUGF(4, "returning size %zu", return_size);
1124 return return_size;
1125 }
1126
1127 if (FLAGS_GET_Z(gbox->flags))
1128 {
1129 f[i++] = next_float_down(gbox->zmin);
1130 f[i++] = next_float_up(gbox->zmax);
1131 loc += 2 * sizeof(float);
1132 }
1133
1134 if (FLAGS_GET_M(gbox->flags))
1135 {
1136 f[i++] = next_float_down(gbox->mmin);
1137 f[i++] = next_float_up(gbox->mmax);
1138 loc += 2 * sizeof(float);
1139 }
1140 return_size = (size_t)(loc - buf);
1141 LWDEBUGF(4, "returning size %zu", return_size);
1142 return return_size;
1143}
#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:74
float next_float_down(double d)
Definition lwgeom_api.c:53
#define FLAGS_GET_GEODETIC(flags)
Definition liblwgeom.h:168
#define LWDEBUGF(level, msg,...)
Definition lwgeom_log.h:106
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 gserialized2_from_lwgeom().

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