Salome HOME
Fix for the issue #686: now compounds produced by the Boolean operations can be corre...
[modules/shaper.git] / src / ModelAPI / ModelAPI_Tools.cpp
index 3a16235768086f153cbd7a827527520778865a89..cbe1290a852b80cc4192d1d38bf6889517a4a74f 100644 (file)
@@ -10,7 +10,8 @@
 #include <ModelAPI_Object.h>
 #include <ModelAPI_AttributeDouble.h>
 #include <ModelAPI_ResultParameter.h>
-
+#include <ModelAPI_ResultPart.h>
+#include <ModelAPI_AttributeDocRef.h>
 #include <list>
 #include <map>
 
@@ -153,4 +154,16 @@ void findRandomColor(std::vector<int>& theValues)
   }
 }
 
+ResultPtr findPartResult(const DocumentPtr& theMain, const DocumentPtr& theSub)
+{
+  for (int a = theMain->size(ModelAPI_ResultPart::group()) - 1; a >= 0; a--) {
+    ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(
+        theMain->object(ModelAPI_ResultPart::group(), a));
+    if (aPart && aPart->data()->document(ModelAPI_ResultPart::DOC_REF())->value() == theSub) {
+      return aPart;
+    }
+  }
+  return ResultPtr();
+}
+
 } // namespace ModelAPI_Tools