]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #2635: Dump to Python generates script with unnecessary setColor() calls.
authorazv <azv@opencascade.com>
Fri, 21 Sep 2018 10:22:39 +0000 (13:22 +0300)
committerazv <azv@opencascade.com>
Fri, 21 Sep 2018 10:22:39 +0000 (13:22 +0300)
Avoid dumping colors of sketch entities

src/ModelHighAPI/ModelHighAPI_Dumper.cpp

index c60d67e775d12a002b880ec679bdca6b0d82180e..b7d35b4f1c4fb46e47d109cafc9c826af22a0479 100644 (file)
@@ -576,12 +576,28 @@ bool ModelHighAPI_Dumper::isDumped(const AttributeRefListPtr& theRefList) const
   return true;
 }
 
+static bool isSketchSub(const FeaturePtr& theFeature)
+{
+  static const std::string SKETCH("Sketch");
+  CompositeFeaturePtr anOwner = ModelAPI_Tools::compositeOwner(theFeature);
+  return anOwner && anOwner->getKind() == SKETCH;
+}
+
 bool ModelHighAPI_Dumper::isDefaultColor(const ResultPtr& theResult) const
 {
   AttributeIntArrayPtr aColor = theResult->data()->intArray(ModelAPI_Result::COLOR_ID());
   if (!aColor || !aColor->isInitialized())
     return true;
 
+  // check the result belongs to sketch entity, do not dump color in this way
+  ResultConstructionPtr aResConstr =
+      std::dynamic_pointer_cast<ModelAPI_ResultConstruction>(theResult);
+  if (aResConstr) {
+    FeaturePtr aFeature = ModelAPI_Feature::feature(theResult->data()->owner());
+    if (isSketchSub(aFeature))
+      return true;
+  }
+
   std::string aSection, aName, aDefault;
   theResult->colorConfigInfo(aSection, aName, aDefault);