PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ gbox_is_valid()

int gbox_is_valid ( const GBOX gbox)

Return false if any of the dimensions is NaN or infinite.

Definition at line 197 of file gbox.c.

198 {
199  /* X */
200  if ( ! isfinite(gbox->xmin) || isnan(gbox->xmin) ||
201  ! isfinite(gbox->xmax) || isnan(gbox->xmax) )
202  return LW_FALSE;
203 
204  /* Y */
205  if ( ! isfinite(gbox->ymin) || isnan(gbox->ymin) ||
206  ! isfinite(gbox->ymax) || isnan(gbox->ymax) )
207  return LW_FALSE;
208 
209  /* Z */
210  if ( FLAGS_GET_GEODETIC(gbox->flags) || FLAGS_GET_Z(gbox->flags) )
211  {
212  if ( ! isfinite(gbox->zmin) || isnan(gbox->zmin) ||
213  ! isfinite(gbox->zmax) || isnan(gbox->zmax) )
214  return LW_FALSE;
215  }
216 
217  /* M */
218  if ( FLAGS_GET_M(gbox->flags) )
219  {
220  if ( ! isfinite(gbox->mmin) || isnan(gbox->mmin) ||
221  ! isfinite(gbox->mmax) || isnan(gbox->mmax) )
222  return LW_FALSE;
223  }
224 
225  return LW_TRUE;
226 }
#define LW_FALSE
Definition: liblwgeom.h:94
#define FLAGS_GET_Z(flags)
Definition: liblwgeom.h:165
#define FLAGS_GET_M(flags)
Definition: liblwgeom.h:166
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:93
#define FLAGS_GET_GEODETIC(flags)
Definition: liblwgeom.h:168
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, LW_FALSE, LW_TRUE, GBOX::mmax, GBOX::mmin, GBOX::xmax, GBOX::xmin, GBOX::ymax, GBOX::ymin, GBOX::zmax, and GBOX::zmin.

Referenced by compute_gserialized_stats_mode(), and lwgeom_cluster_kmeans().

Here is the caller graph for this function: