PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ 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
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, lwgeom_get_basic_type(), MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, POINTTYPE, POLYGONTYPE, TINTYPE, TRIANGLETYPE, and LWGEOM::type.

Referenced by lwgeom_get_basic_type(), mvt_clip_and_validate_geos(), and mvt_geom().

Here is the call graph for this function:
Here is the caller graph for this function: