From f5115e0c402aa5d4d070f970ddc79c0a4a9c04ac Mon Sep 17 00:00:00 2001 From: vsv Date: Wed, 9 Oct 2019 11:53:51 +0300 Subject: [PATCH] Provide selection of features for invisible objects --- src/ModuleBase/ModuleBase_ISelection.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ModuleBase/ModuleBase_ISelection.cpp b/src/ModuleBase/ModuleBase_ISelection.cpp index 73999c601..635991721 100644 --- a/src/ModuleBase/ModuleBase_ISelection.cpp +++ b/src/ModuleBase/ModuleBase_ISelection.cpp @@ -20,6 +20,7 @@ #include "ModuleBase_ISelection.h" #include "ModuleBase_ViewerPrs.h" +#include "ModelAPI_Feature.h" #include #include @@ -53,8 +54,16 @@ ResultPtr ModuleBase_ISelection::getResult(const ModuleBase_ViewerPrsPtr& thePrs { ResultPtr aResult; - if (thePrs->object().get()) - aResult = std::dynamic_pointer_cast(thePrs->object()); + if (thePrs->object().get()) { + ObjectPtr aObject = thePrs->object(); + aResult = std::dynamic_pointer_cast(aObject); + if (!aResult.get()) { + FeaturePtr aFeature = std::dynamic_pointer_cast(aObject); + if (aFeature.get()) { + aResult = aFeature->firstResult(); + } + } + } else if (!thePrs->owner().IsNull()) { ObjectPtr anObject = getSelectableObject(thePrs->owner()); aResult = std::dynamic_pointer_cast(anObject); -- 2.39.2