Salome HOME
2.10. Show thicker edges in Projection feature "included into sketch results"
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_SketchEntity.h
index c207dd72b264b3f279483e3fa17021978e59a006..b915d8540e92b53c074e379a8eb96ea269647c53 100644 (file)
@@ -74,7 +74,7 @@ class SketchPlugin_SketchEntity : public SketchPlugin_Feature, public GeomAPI_IC
   /// Width of the line
   inline static const double SKETCH_LINE_WIDTH()
   {
-    return 3;
+    return Config_PropManager::integer("Visualization", "sketch_line_width");
   }
 
   /// Style of the auxiliary line
@@ -111,6 +111,24 @@ class SketchPlugin_SketchEntity : public SketchPlugin_Feature, public GeomAPI_IC
     return false;
   }
 
+  virtual bool isIncludeToResult() const
+  {
+    AttributeBooleanPtr anAttr;
+    std::set<AttributePtr> aRefsToMe = data()->refsToMe();
+    std::set<AttributePtr>::const_iterator aIt;
+    for (aIt = aRefsToMe.cbegin(); aIt != aRefsToMe.cend(); ++aIt) {
+      if ((*aIt)->id() == "ProjectedFeature") {
+        FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>((*aIt)->owner());
+        if (aFeature.get()) {
+          anAttr = aFeature->data()->boolean("IncludeToResult");
+          if (anAttr.get())
+            return anAttr->value();
+        }
+      }
+    }
+    return true;
+  }
+
 // LCOV_EXCL_START
   /// Customize presentation of the feature
   virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
@@ -156,7 +174,7 @@ class SketchPlugin_SketchEntity : public SketchPlugin_Feature, public GeomAPI_IC
       if (theResult.get() && ModelAPI_Session::get()->isOperation()) {
         AttributeIntArrayPtr aColorAttr = theResult->data()->intArray(ModelAPI_Result::COLOR_ID());
         aColorAttr->setSize(3);
-        // Set the color attribute in order do not use default colors in the perasentation object
+        // Set the color attribute in order do not use default colors in the presentation object
         for (int i = 0; i < 3; i++)
           aColorAttr->setValue(i, aColor[i]);
       }
@@ -181,7 +199,7 @@ class SketchPlugin_SketchEntity : public SketchPlugin_Feature, public GeomAPI_IC
       thePrs->setWidth(17);
     //  thePrs->setPointMarker(1, 1.); // Set point as a '+' symbol
     }
-    if(isCopy()) {
+    if(isCopy() && !isIncludeToResult()) {
       double aWidth = thePrs->width();
       isCustomized = thePrs->setWidth(aWidth / 2.5) || isCustomized;
     }