From 730f2af80b500b6e45e3c25b9b5ffc836d97d7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Sun, 10 May 2015 11:41:38 +0200 Subject: [PATCH] fix crash when deleting body --- src/Gui/ViewProviderPart.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Gui/ViewProviderPart.cpp b/src/Gui/ViewProviderPart.cpp index 8d87a69f90..5d44df247b 100644 --- a/src/Gui/ViewProviderPart.cpp +++ b/src/Gui/ViewProviderPart.cpp @@ -101,19 +101,23 @@ void ViewProviderPart::onObjectChanged(const App::DocumentObject& obj, const App SoGetBoundingBoxAction bboxAction(viewer->getSoRenderManager()->getViewportRegion()); //calculate for everything but planes - SbBox3f bbox(0.0001f,0.0001f,0.0001f,0.0001f,0.0001f,0.0001f); + SbBox3f bbox(1e-9, 1e-9, 1e-9, 1e-9, 1e-9, 1e-9); for(App::DocumentObject* obj : part->getObjects()) { if(obj->getTypeId() != App::Origin::getClassTypeId() && obj->getTypeId() != App::Plane::getClassTypeId() && obj->getTypeId() != App::Line::getClassTypeId() ) { + //getting crash on deletion PartDesign::Body object. no viewprovider. ViewProvider *viewProvider = Gui::Application::Instance->getViewProvider(obj); if (!viewProvider) continue; + bboxAction.apply(viewProvider->getRoot()); bbox.extendBy(bboxAction.getBoundingBox()); } }; + if(bbox.getSize().length() < 1e-6); + bbox = SbBox3f(1e2, 1e2, 1e2, 1e2, 1e2, 1e2); //get the bounding box values SbVec3f size = bbox.getSize()*1.3;