PostGIS  3.4.0dev-r@@SVN_REVISION@@
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Pages

◆ lwgeom_get_basic_type()

static uint8_t lwgeom_get_basic_type ( LWGEOM geom)
static

Definition at line 775 of file mvt.c.

776 {
777  switch(geom->type)
778  {
779  case POINTTYPE:
780  case LINETYPE:
781  case POLYGONTYPE:
782  return geom->type;
783  case TRIANGLETYPE:
784  return POLYGONTYPE;
785  case MULTIPOINTTYPE:
786  case MULTILINETYPE:
787  case MULTIPOLYGONTYPE:
788  return geom->type - 3; /* Based on LWTYPE positions */
789  case COLLECTIONTYPE:
790  case TINTYPE:
791  {
792  uint32_t i;
793  uint8_t type = 0;
794  LWCOLLECTION *g = (LWCOLLECTION*)geom;
795  for (i = 0; i < g->ngeoms; i++)
796  {
797  LWGEOM *sg = g->geoms[i];
798  type = Max(type, lwgeom_get_basic_type(sg));
799  }
800  return type;
801  }
802  default:
803  elog(ERROR, "%s: Invalid type (%d)", __func__, geom->type);
804  }
805 }
#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:775
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: