Salome HOME
Compsolid: an interface to disable SHOW/HIDE action on sub-results.
authornds <natalia.donis@opencascade.com>
Fri, 31 Jul 2015 10:59:27 +0000 (13:59 +0300)
committernds <natalia.donis@opencascade.com>
Fri, 31 Jul 2015 10:59:27 +0000 (13:59 +0300)
src/ModuleBase/ModuleBase_Tools.cpp
src/ModuleBase/ModuleBase_Tools.h

index c1f400ad41e28fef1ba2219d55b4ae51a90f467d..13d1d22d69b7298e9d20e35eef91ef5b4e4f4310 100644 (file)
@@ -12,6 +12,7 @@
 #include <ModelAPI_Attribute.h>
 #include <ModelAPI_AttributeRefAttr.h>
 #include <ModelAPI_ResultParameter.h>
+#include <ModelAPI_ResultCompSolid.h>
 #include <ModelAPI_Tools.h>
 
 #include <GeomDataAPI_Point2D.h>
@@ -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<ModelAPI_ResultCompSolid>(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<ModelAPI_Result>(aObj);
     ResultParameterPtr aConstruction = std::dynamic_pointer_cast<ModelAPI_ResultParameter>(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) 
index cc7ced07abde5356555f8011027a4d41666bf57b..e0aa9c6ed5407bdb44dad024e0dcc5adc27883e8 100644 (file)
@@ -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