Ignore invalid polygon geometries to avoid crashes in tessellation

This commit is contained in:
Martin Dobias 2017-08-14 13:54:35 +02:00
parent 33f7c17740
commit 35b37a228f

View File

@ -102,6 +102,13 @@ Qt3DRender::QGeometryRenderer *PolygonEntityNode::renderer( const Map3D &map, co
if ( QgsWkbTypes::isCurvedType( geom.geometry()->wkbType() ) ) if ( QgsWkbTypes::isCurvedType( geom.geometry()->wkbType() ) )
geom = QgsGeometry( geom.geometry()->segmentize() ); geom = QgsGeometry( geom.geometry()->segmentize() );
if ( !geom.isGeosValid() )
{
// invalid geometries break tessellation
qDebug() << "skipping invalid geometry" << f.id();
continue;
}
QgsAbstractGeometry *g = geom.geometry(); QgsAbstractGeometry *g = geom.geometry();
if ( QgsWkbTypes::flatType( g->wkbType() ) == QgsWkbTypes::Polygon ) if ( QgsWkbTypes::flatType( g->wkbType() ) == QgsWkbTypes::Polygon )