PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ BOX3D_out()

Datum BOX3D_out ( PG_FUNCTION_ARGS  )

Definition at line 120 of file lwgeom_box3d.c.

121 {
122  BOX3D *bbox = (BOX3D *)PG_GETARG_POINTER(0);
123  static const int precision = 15;
124  static int size = OUT_MAX_BYTES_DOUBLE * 6 + 5 + 2 + 4 + 5 + 1; /* double * 6 + "BOX3D"+ "()" + commas + null */
125  int i = 0;
126  char *result;
127 
128  if (bbox == NULL)
129  {
130  result = palloc(5);
131  strcat(result, "NULL");
132  PG_RETURN_CSTRING(result);
133  }
134 
135  result = (char *)palloc(size);
136  result[i++] = 'B';
137  result[i++] = 'O';
138  result[i++] = 'X';
139  result[i++] = '3';
140  result[i++] = 'D';
141  result[i++] = '(';
142  i += lwprint_double(bbox->xmin, precision, &result[i]);
143  result[i++] = ' ';
144  i += lwprint_double(bbox->ymin, precision, &result[i]);
145  result[i++] = ' ';
146  i += lwprint_double(bbox->zmin, precision, &result[i]);
147  result[i++] = ',';
148  i += lwprint_double(bbox->xmax, precision, &result[i]);
149  result[i++] = ' ';
150  i += lwprint_double(bbox->ymax, precision, &result[i]);
151  result[i++] = ' ';
152  i += lwprint_double(bbox->zmax, precision, &result[i]);
153  result[i++] = ')';
154  result[i++] = '\0';
155 
156  PG_RETURN_CSTRING(result);
157 }
static uint8_t precision
Definition: cu_in_twkb.c:25
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition: cu_print.c:262
#define OUT_MAX_BYTES_DOUBLE
int lwprint_double(double d, int maxdd, char *buf)
Definition: lwprint.c:457
double xmax
Definition: liblwgeom.h:340
double zmin
Definition: liblwgeom.h:339
double ymax
Definition: liblwgeom.h:340
double ymin
Definition: liblwgeom.h:339
double zmax
Definition: liblwgeom.h:340
double xmin
Definition: liblwgeom.h:339

References lwprint_double(), OUT_MAX_BYTES_DOUBLE, precision, result, BOX3D::xmax, BOX3D::xmin, BOX3D::ymax, BOX3D::ymin, BOX3D::zmax, and BOX3D::zmin.

Here is the call graph for this function: