PostGIS  3.2.2dev-r@@SVN_REVISION@@

◆ lwgeom_get_basic_type()

static uint8_t lwgeom_get_basic_type ( LWGEOM geom)
static

Definition at line 749 of file mvt.c.

750 {
751  switch(geom->type)
752  {
753  case POINTTYPE:
754  case LINETYPE:
755  case POLYGONTYPE:
756  return geom->type;
757  case TRIANGLETYPE:
758  return POLYGONTYPE;
759  case MULTIPOINTTYPE:
760  case MULTILINETYPE:
761  case MULTIPOLYGONTYPE:
762  return geom->type - 3; /* Based on LWTYPE positions */
763  case COLLECTIONTYPE:
764  case TINTYPE:
765  {
766  uint32_t i;
767  uint8_t type = 0;
768  LWCOLLECTION *g = (LWCOLLECTION*)geom;
769  for (i = 0; i < g->ngeoms; i++)
770  {
771  LWGEOM *sg = g->geoms[i];
772  type = Max(type, lwgeom_get_basic_type(sg));
773  }
774  return type;
775  }
776  default:
777  elog(ERROR, "%s: Invalid type (%d)", __func__, geom->type);
778  }
779 }
#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:749
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_geom().

Here is the caller graph for this function: