PostGIS 3.0.6dev-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 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: