PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ lwgeom_get_basic_type()

static uint8_t lwgeom_get_basic_type ( LWGEOM geom)
static

Definition at line 747 of file mvt.c.

748 {
749  switch(geom->type)
750  {
751  case POINTTYPE:
752  case LINETYPE:
753  case POLYGONTYPE:
754  return geom->type;
755  case TRIANGLETYPE:
756  return POLYGONTYPE;
757  case MULTIPOINTTYPE:
758  case MULTILINETYPE:
759  case MULTIPOLYGONTYPE:
760  return geom->type - 3; /* Based on LWTYPE positions */
761  case COLLECTIONTYPE:
762  case TINTYPE:
763  {
764  uint32_t i;
765  uint8_t type = 0;
766  LWCOLLECTION *g = (LWCOLLECTION*)geom;
767  for (i = 0; i < g->ngeoms; i++)
768  {
769  LWGEOM *sg = g->geoms[i];
770  type = Max(type, lwgeom_get_basic_type(sg));
771  }
772  return type;
773  }
774  default:
775  elog(ERROR, "%s: Invalid type (%d)", __func__, geom->type);
776  }
777 }
#define COLLECTIONTYPE
Definition: liblwgeom.h:122
#define MULTILINETYPE
Definition: liblwgeom.h:120
#define LINETYPE
Definition: liblwgeom.h:117
#define MULTIPOINTTYPE
Definition: liblwgeom.h:119
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition: liblwgeom.h:116
#define TINTYPE
Definition: liblwgeom.h:130
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:121
#define POLYGONTYPE
Definition: liblwgeom.h:118
#define TRIANGLETYPE
Definition: liblwgeom.h:129
static uint8_t lwgeom_get_basic_type(LWGEOM *geom)
Definition: mvt.c:747
type
Definition: ovdump.py:42
uint32_t ngeoms
Definition: liblwgeom.h:594
LWGEOM ** geoms
Definition: liblwgeom.h:589
uint8_t type
Definition: liblwgeom.h:476

References COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, POINTTYPE, POLYGONTYPE, TINTYPE, TRIANGLETYPE, LWGEOM::type, and ovdump::type.

Referenced by mvt_clip_and_validate_geos(), and mvt_geom().

Here is the caller graph for this function: