From 3c2128e2800acfb248e5cb785434ddbe99586f59 Mon Sep 17 00:00:00 2001 From: Artem Zhidkov Date: Tue, 28 Jul 2020 22:34:56 +0300 Subject: [PATCH] Issue #3278: Wire disappears from the viewer during 1D-Fillet operation Do not set 'isConcealed' flag if the attribute referring to a result is not the case for the current operation. --- src/Model/Model_Data.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Model/Model_Data.cpp b/src/Model/Model_Data.cpp index b84d441c1..4ca69f024 100644 --- a/src/Model/Model_Data.cpp +++ b/src/Model/Model_Data.cpp @@ -649,8 +649,10 @@ void Model_Data::updateConcealmentFlag() if (aRefsIter->get()) { FeaturePtr aFeature = std::dynamic_pointer_cast((*aRefsIter)->owner()); if (aFeature.get() && !aFeature->isDisabled() && aFeature->isStable()) { - if (ModelAPI_Session::get()->validators()->isConcealed( - aFeature->getKind(), (*aRefsIter)->id())) { + ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators(); + bool isCase = aValidators->isCase(aFeature, (*aRefsIter)->id()); + bool isConcealed = aValidators->isConcealed(aFeature->getKind(), (*aRefsIter)->id()); + if (isCase && isConcealed) { std::shared_ptr aRes = std::dynamic_pointer_cast(myObject); if (aRes.get()) { -- 2.39.2