Salome HOME
2.10. Show thicker edges in Projection feature "included into sketch results"
authorvsv <vsv@opencascade.com>
Wed, 9 Oct 2019 12:08:08 +0000 (15:08 +0300)
committervsv <vsv@opencascade.com>
Wed, 9 Oct 2019 12:08:08 +0000 (15:08 +0300)
src/SketchPlugin/SketchPlugin_Plugin.cpp
src/SketchPlugin/SketchPlugin_SketchEntity.h

index d9e967e60a7e7f07a18eea5fba7f0de76e47a31d..ac1b442c82da8b06b32c948a929aaa7427cbc7c4 100644 (file)
@@ -171,6 +171,10 @@ SketchPlugin_Plugin::SketchPlugin_Plugin()
                                    "Sketch fully constrained color",
                                    Config_Prop::Color, SKETCH_FULLY_CONSTRAINED_COLOR);
 
+  Config_PropManager::registerProp("Visualization", "sketch_line_width",
+                                   "Sketch line width",
+                                   Config_Prop::IntSpin, "3");
+
   // register sketcher properties
 #ifdef SET_PLANES_COLOR_IN_PREFERENCES
   Config_PropManager::registerProp("Visualization", "yz_plane_color", "YZ plane color",
index eb50851fa4b2552de343f896214801e0163c321a..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,
@@ -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;
     }