PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ lwgeom_get_basic_type()

static uint8_t lwgeom_get_basic_type ( LWGEOM geom)
static

Definition at line 774 of file mvt.c.

775 {
776  switch(geom->type)
777  {
778  case POINTTYPE:
779  case LINETYPE:
780  case POLYGONTYPE:
781  return geom->type;
782  case TRIANGLETYPE:
783  return POLYGONTYPE;
784  case MULTIPOINTTYPE:
785  case MULTILINETYPE:
786  case MULTIPOLYGONTYPE:
787  return geom->type - 3; /* Based on LWTYPE positions */
788  case COLLECTIONTYPE:
789  case TINTYPE:
790  {
791  uint32_t i;
792  uint8_t type = 0;
793  LWCOLLECTION *g = (LWCOLLECTION*)geom;
794  for (i = 0; i < g->ngeoms; i++)
795  {
796  LWGEOM *sg = g->geoms[i];
797  type = Max(type, lwgeom_get_basic_type(sg));
798  }
799  return type;
800  }
801  default:
802  elog(ERROR, "%s: Invalid type (%d)", __func__, geom->type);
803  }
804 }
#define COLLECTIONTYPE
Definition: liblwgeom.h:108
#define MULTILINETYPE
Definition: liblwgeom.h:106
#define LINETYPE
Definition: liblwgeom.h:103
#define MULTIPOINTTYPE
Definition: liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition: liblwgeom.h:102
#define TINTYPE
Definition: liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:107
#define POLYGONTYPE
Definition: liblwgeom.h:104
#define TRIANGLETYPE
Definition: liblwgeom.h:115
static uint8_t lwgeom_get_basic_type(LWGEOM *geom)
Definition: mvt.c:774
type
Definition: ovdump.py:42
uint32_t ngeoms
Definition: liblwgeom.h:580
LWGEOM ** geoms
Definition: liblwgeom.h:575
uint8_t type
Definition: liblwgeom.h:462

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

Referenced by mvt_geom().

Here is the caller graph for this function: