PostGIS  3.2.2dev-r@@SVN_REVISION@@

◆ mvt_clip_and_validate_geos()

static LWGEOM* mvt_clip_and_validate_geos ( LWGEOM lwgeom,
uint8_t  basic_type,
uint32_t  extent,
uint32_t  buffer,
bool  clip_geom 
)
static

Definition at line 846 of file mvt.c.

847 {
848  LWGEOM *ng = lwgeom;
849  assert(lwgeom->type != POLYGONTYPE);
850  assert(lwgeom->type != MULTIPOLYGONTYPE);
851 
852  if (clip_geom)
853  {
854  gridspec grid = {0, 0, 0, 0, 1, 1, 0, 0};
855  GBOX bgbox;
856  bgbox.xmax = bgbox.ymax = (double)extent + (double)buffer;
857  bgbox.xmin = bgbox.ymin = -(double)buffer;
858  FLAGS_SET_GEODETIC(bgbox.flags, 0);
859 
860  ng = mvt_unsafe_clip_by_box(ng, &bgbox);
861 
862  /* Make sure there is no pending float values (clipping can do that) */
863  lwgeom_grid_in_place(ng, &grid);
864  }
865 
866  return ng;
867 }
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:121
#define POLYGONTYPE
Definition: liblwgeom.h:118
#define FLAGS_SET_GEODETIC(flags, value)
Definition: liblwgeom.h:189
void lwgeom_grid_in_place(LWGEOM *lwgeom, const gridspec *grid)
Definition: lwgeom.c:2172
static LWGEOM * mvt_unsafe_clip_by_box(LWGEOM *lwg_in, GBOX *clip_box)
Definition: mvt.c:814
Datum buffer(PG_FUNCTION_ARGS)
double ymax
Definition: liblwgeom.h:371
double xmax
Definition: liblwgeom.h:369
double ymin
Definition: liblwgeom.h:370
double xmin
Definition: liblwgeom.h:368
lwflags_t flags
Definition: liblwgeom.h:367
uint8_t type
Definition: liblwgeom.h:476
Snap-to-grid.
Definition: liblwgeom.h:1382

References buffer(), GBOX::flags, FLAGS_SET_GEODETIC, lwgeom_grid_in_place(), MULTIPOLYGONTYPE, mvt_unsafe_clip_by_box(), POLYGONTYPE, LWGEOM::type, GBOX::xmax, GBOX::xmin, GBOX::ymax, and GBOX::ymin.

Referenced by mvt_clip_and_validate().

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