Bug report #17515
3D crash with large-ish polygon layer
Status: | Closed | ||
---|---|---|---|
Priority: | High | ||
Assignee: | Martin Dobias | ||
Category: | 3D | ||
Affected QGIS version: | master | Regression?: | No |
Operating System: | Windows | Easy fix?: | No |
Pull Request or Patch supplied: | No | Resolution: | fixed/implemented |
Crashes QGIS or corrupts data: | Yes | Copied to github as #: | 25412 |
Description
User Feedback¶
I will attach a sample data set tonight once I can check it on a different machine.
Report Details¶
Crash ID: 1fea3d7d16f3409416d569c53f1a54d9e8b2133e
Stack Trace
p2t::Triangle::EdgeIndex shapes.cc:168 p2t::Sweep::IsEdgeSideOfTriangle sweep.cc:164 p2t::Sweep::EdgeEvent sweep.cc:109 p2t::Sweep::EdgeEvent sweep.cc:140 p2t::Sweep::EdgeEvent sweep.cc:156 p2t::Sweep::EdgeEvent sweep.cc:123 p2t::Sweep::EdgeEvent sweep.cc:105 p2t::Sweep::SweepPoints sweep.cc:57 p2t::Sweep::Triangulate sweep.cc:47 p2t::CDT::Triangulate cdt.cc:53 QgsTessellator::addPolygon qgstessellator.cpp:344 QgsTessellatedPolygonGeometry::setPolygons qgstessellatedpolygongeometry.cpp:75 QgsLine3DSymbolEntityNode::renderer qgsline3dsymbol_p.cpp:145 QgsLine3DSymbolEntityNode::QgsLine3DSymbolEntityNode qgsline3dsymbol_p.cpp:91 QgsLine3DSymbolEntity::addEntityForNotSelectedLines qgsline3dsymbol_p.cpp:83 QgsLine3DSymbolEntity::QgsLine3DSymbolEntity qgsline3dsymbol_p.cpp:34 QgsVectorLayer3DRenderer::createEntity qgsvectorlayer3drenderer.cpp:89 Qgs3DMapScene::addLayerEntity qgs3dmapscene.cpp:370 Qgs3DMapScene::onLayerRenderer3DChanged qgs3dmapscene.cpp:335 QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl Qgs3DMapScene::*)(void) __ptr64>::call qobjectdefs_impl.h:136 QtPrivate::FunctionPointer<void (__cdecl Qgs3DMapScene::*)(void) __ptr64>::call<QtPrivate::List<>,void> qobjectdefs_impl.h:170 QtPrivate::QSlotObject<void (__cdecl Qgs3DMapScene::*)(void) __ptr64,QtPrivate::List<>,void>::impl qobject_impl.h:121 QMetaObject::activate : QgsMapLayer::renderer3DChanged moc_qgsmaplayer.cpp:485 QgsMapLayer::setRenderer3D qgsmaplayer.cpp:1703 QgsVectorLayer3DRendererWidget::apply qgsvectorlayer3drendererwidget.cpp:167 QgsLayerStylingWidget::apply qgslayerstylingwidget.cpp:270 QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl QgsLayerStylingWidget::*)(void) __ptr64>::call qobjectdefs_impl.h:136 QtPrivate::FunctionPointer<void (__cdecl QgsLayerStylingWidget::*)(void) __ptr64>::call<QtPrivate::List<>,void> qobjectdefs_impl.h:170 QtPrivate::QSlotObject<void (__cdecl QgsLayerStylingWidget::*)(void) __ptr64,QtPrivate::List<>,void>::impl qobject_impl.h:121 QMetaObject::activate : QTimer::timerEvent : QObject::event : QApplicationPrivate::notify_helper : QApplication::notify : QgsApplication::notify qgsapplication.cpp:316 QCoreApplication::notifyInternal2 : QEventDispatcherWin32Private::sendTimerEvent : QEventDispatcherWin32::processEvents : CallWindowProcW : DispatchMessageW : QEventDispatcherWin32::processEvents : qt_plugin_query_metadata : QEventLoop::exec : QCoreApplication::exec : main main.cpp:1398 WinMain mainwin.cpp:128 __scrt_common_main_seh exe_common.inl:253 BaseThreadInitThunk : RtlUserThreadStart :
QGIS Info
QGIS Version: 2.99.0-Master
QGIS code revision: c321700ada
Compiled against Qt: 5.9.2
Running against Qt: 5.9.2
Compiled against GDAL: 2.2.2
Running against GDAL: 2.2.2
System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.15063
Associated revisions
[3d] Fix crash in tessellator with near coords (fixes #17286, fixes #17515)
As the readme of poly2tri library says: "Poly2Tri does not support repeat points within epsilon."
When the coordinates are very near to each other, we get crashes in triangulation code.
To prevent that, we try to simplify geometries to hopefully fix the problem automatically,
if that fails we just skip the polygon as the last resort.
Usually this happens if user tries to use 3D renderer on unprojected lat/lon coordinates.
History
#1 Updated by Giovanni Manghi almost 7 years ago
- Crashes QGIS or corrupts data changed from No to Yes
- Priority changed from Normal to High
#2 Updated by Martin Dobias almost 7 years ago
- % Done changed from 0 to 100
- Status changed from Open to Closed
Applied in changeset qgis|7bce7ea9ca25f5744ca6dc8d02ba8f7dbe408d47.
#3 Updated by Giovanni Manghi almost 7 years ago
- Resolution set to fixed/implemented