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

◆ 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 %zu", 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 %zu", 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: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 gserialized1_from_lwgeom().

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