PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ lwgeom_get_basic_type()

static uint8 lwgeom_get_basic_type ( LWGEOM geom)
static

Definition at line 783 of file mvt.c.

784 {
785  switch(geom->type)
786  {
787  case POINTTYPE:
788  case LINETYPE:
789  case POLYGONTYPE:
790  return geom->type;
791  case TRIANGLETYPE:
792  return POLYGONTYPE;
793  case MULTIPOINTTYPE:
794  case MULTILINETYPE:
795  case MULTIPOLYGONTYPE:
796  return geom->type - 3; /* Based on LWTYPE positions */
797  case COLLECTIONTYPE:
798  case TINTYPE:
799  {
800  uint32_t i;
801  uint8 type = 0;
802  LWCOLLECTION *g = (LWCOLLECTION*)geom;
803  for (i = 0; i < g->ngeoms; i++)
804  {
805  LWGEOM *sg = g->geoms[i];
806  type = Max(type, lwgeom_get_basic_type(sg));
807  }
808  return type;
809  }
810  default:
811  elog(ERROR, "%s: Invalid type (%d)", __func__, geom->type);
812  }
813 }
#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 lwgeom_get_basic_type(LWGEOM *geom)
Definition: mvt.c:783
type
Definition: ovdump.py:42
uint32_t ngeoms
Definition: liblwgeom.h:566
LWGEOM ** geoms
Definition: liblwgeom.h:561
uint8_t type
Definition: liblwgeom.h:448

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: