From 297bc35077f4238c7625ed6305719e4edcea9898 Mon Sep 17 00:00:00 2001 From: nds Date: Fri, 31 Jul 2015 13:59:27 +0300 Subject: [PATCH] Compsolid: an interface to disable SHOW/HIDE action on sub-results. --- src/ModuleBase/ModuleBase_Tools.cpp | 14 +++++++++++++- src/ModuleBase/ModuleBase_Tools.h | 5 +++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/ModuleBase/ModuleBase_Tools.cpp b/src/ModuleBase/ModuleBase_Tools.cpp index c1f400ad4..13d1d22d6 100644 --- a/src/ModuleBase/ModuleBase_Tools.cpp +++ b/src/ModuleBase/ModuleBase_Tools.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -221,6 +222,14 @@ TopAbs_ShapeEnum shapeType(const QString& theType) return TopAbs_SHAPE; } +bool isSubResult(ObjectPtr theObject) +{ + bool aSubResult = false; + + //ResultCompSolidPtr aCompsolidResult = std::dynamic_pointer_cast(aResult); + return aSubResult; +} + void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFeature, bool& hasParameter, bool& hasSubFeature) { hasResult = false; @@ -232,7 +241,10 @@ void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFe ResultPtr aResult = std::dynamic_pointer_cast(aObj); ResultParameterPtr aConstruction = std::dynamic_pointer_cast(aResult); - hasResult = (aResult.get() != NULL); + bool aSubResult = isSubResult(aResult); + + /// results of compsolids are not processed in SHOW/HIDE/WIREFRAME operations + hasResult = (aResult.get() != NULL && !aSubResult); hasFeature = (aFeature.get() != NULL); hasParameter = (aConstruction.get() != NULL); if (hasFeature) diff --git a/src/ModuleBase/ModuleBase_Tools.h b/src/ModuleBase/ModuleBase_Tools.h index cc7ced07a..e0aa9c6ed 100644 --- a/src/ModuleBase/ModuleBase_Tools.h +++ b/src/ModuleBase/ModuleBase_Tools.h @@ -83,6 +83,11 @@ MODULEBASE_EXPORT QString objectInfo(const ObjectPtr& theObj, const bool isUseAt /// \return TopAbs_ShapeEnum value MODULEBASE_EXPORT TopAbs_ShapeEnum shapeType(const QString& theType); +/// Checks whether the object is a sub result. It gets the feature of the object, +/// obtains all results of the feature and check if the object is a sub result +/// \return boolean result +MODULEBASE_EXPORT bool isSubResult(ObjectPtr theObject); + /*! Check types of objects which are in the given list \param theObjects the list of objects -- 2.39.2