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

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

Referenced by lwgeom_get_basic_type(), and mvt_geom().

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