From 5737b3241f716b77f8b54f5868a80c0bb6ee189e Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Nov 2018 13:42:38 +0100 Subject: [PATCH] Allow user to define a custom minimum deviation for the tessellation --- src/Mod/Part/Gui/DlgSettings3DViewPartImp.cpp | 4 ++++ src/Mod/Part/Gui/ViewProviderExt.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/Mod/Part/Gui/DlgSettings3DViewPartImp.cpp b/src/Mod/Part/Gui/DlgSettings3DViewPartImp.cpp index a6cbcbe34d..f0348e9257 100644 --- a/src/Mod/Part/Gui/DlgSettings3DViewPartImp.cpp +++ b/src/Mod/Part/Gui/DlgSettings3DViewPartImp.cpp @@ -46,6 +46,10 @@ DlgSettings3DViewPart::DlgSettings3DViewPart(QWidget* parent) : PreferencePage(parent), ui(new Ui_DlgSettings3DViewPart), checkValue(false) { ui->setupUi(this); + ParameterGrp::handle hPart = App::GetApplication().GetParameterGroupByPath + ("User parameter:BaseApp/Preferences/Mod/Part"); + double lowerLimit = hPart->GetFloat("MinimumDeviation", ui->maxDeviation->minimum()); + ui->maxDeviation->setMinimum(lowerLimit); } /** diff --git a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp index c432092ef4..748e04534f 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.cpp +++ b/src/Mod/Part/Gui/ViewProviderExt.cpp @@ -241,6 +241,12 @@ ViewProviderPartExt::ViewProviderPartExt() ("User parameter:BaseApp/Preferences/Mod/Part"); NormalsFromUV = hPart->GetBool("NormalsFromUVNodes", NormalsFromUV); + // Let the user define a custom lower limit but a value less than + // OCCT's epsilon is not allowed + double lowerLimit = hPart->GetFloat("MinimumDeviation", tessRange.LowerBound); + lowerLimit = std::max(lowerLimit, Precision::Confusion()); + tessRange.LowerBound = lowerLimit; + App::Material mat; mat.ambientColor.set(0.2f,0.2f,0.2f); mat.diffuseColor.set(r,g,b);