41 QVector<const GEOSGeometry *> queue;
42 QVector<const GEOSGeometry *> final_queue;
46 queue.append( the_geom );
52 while ( !queue.isEmpty() )
54 geom = queue.takeFirst();
55 const int type = GEOSGeomTypeId_r( geosctxt, geom );
59 case GEOS_MULTILINESTRING:
60 case GEOS_MULTIPOLYGON:
61 case GEOS_GEOMETRYCOLLECTION:
62 nGeom = GEOSGetNumGeometries_r( geosctxt, geom );
63 for ( i = 0; i < nGeom; i++ )
65 queue.append( GEOSGetGeometryN_r( geosctxt, geom, i ) );
71 final_queue.append( geom );
74 QgsDebugError( u
"unexpected geometry type:%1"_s.arg( type ) );
static GEOSContextHandle_t get()
Returns a thread local instance of a GEOS context, safe for use in the current thread.