PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ gbox_union()

int gbox_union ( const GBOX g1,
const GBOX g2,
GBOX gout 
)

Update the output GBOX to be large enough to include both inputs.

Definition at line 135 of file gbox.c.

136 {
137  if ( ( ! g1 ) && ( ! g2 ) )
138  return LW_FALSE;
139  else if (!g1)
140  {
141  memcpy(gout, g2, sizeof(GBOX));
142  return LW_TRUE;
143  }
144  else if (!g2)
145  {
146  memcpy(gout, g1, sizeof(GBOX));
147  return LW_TRUE;
148  }
149 
150  gout->flags = g1->flags;
151 
152  gout->xmin = FP_MIN(g1->xmin, g2->xmin);
153  gout->xmax = FP_MAX(g1->xmax, g2->xmax);
154 
155  gout->ymin = FP_MIN(g1->ymin, g2->ymin);
156  gout->ymax = FP_MAX(g1->ymax, g2->ymax);
157 
158  gout->zmin = FP_MIN(g1->zmin, g2->zmin);
159  gout->zmax = FP_MAX(g1->zmax, g2->zmax);
160 
161  return LW_TRUE;
162 }
#define LW_FALSE
Definition: liblwgeom.h:108
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:107
#define FP_MAX(A, B)
#define FP_MIN(A, B)
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 ymin
Definition: liblwgeom.h:342
double xmin
Definition: liblwgeom.h:340
lwflags_t flags
Definition: liblwgeom.h:339

References GBOX::flags, FP_MAX, FP_MIN, LW_FALSE, LW_TRUE, GBOX::xmax, GBOX::xmin, GBOX::ymax, GBOX::ymin, GBOX::zmax, and GBOX::zmin.

Referenced by BOX2D_union(), geography_bestsrid(), and lwt_ChangeEdgeGeom().

Here is the caller graph for this function: