]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/ModuleBase/ModuleBase_Tools.cpp
Salome HOME
Add tools
[modules/shaper.git] / src / ModuleBase / ModuleBase_Tools.cpp
old mode 100644 (file)
new mode 100755 (executable)
index c1f400a..d2009ac
 #include <ModelAPI_Attribute.h>
 #include <ModelAPI_AttributeRefAttr.h>
 #include <ModelAPI_ResultParameter.h>
+#include <ModelAPI_ResultCompSolid.h>
 #include <ModelAPI_Tools.h>
 
 #include <GeomDataAPI_Point2D.h>
 #include <Events_Error.h>
 
+#include <Config_PropManager.h>
+
 #include <QWidget>
 #include <QLayout>
 #include <QPainter>
@@ -25,6 +28,9 @@
 
 #include <sstream>
 
+const double tolerance = 1e-7;
+
+
 namespace ModuleBase_Tools {
 
 //******************************************************************
@@ -125,7 +131,7 @@ void setSpinText(ModuleBase_ParamSpinBox* theSpin, const QString& theText)
 
 void setSpinValue(QDoubleSpinBox* theSpin, double theValue)
 {
-  if (theSpin->value() == theValue)
+  if (fabs(theSpin->value() - theValue) < tolerance)
     return;
   bool isBlocked = theSpin->blockSignals(true);
   theSpin->setValue(theValue);
@@ -134,8 +140,8 @@ void setSpinValue(QDoubleSpinBox* theSpin, double theValue)
 
 void setSpinValue(ModuleBase_ParamSpinBox* theSpin, double theValue)
 {
-  //if (theSpin->value() == theValue)
-  //  return;
+  if (fabs(theSpin->value() - theValue) < tolerance)
+    return;
   bool isBlocked = theSpin->blockSignals(true);
   theSpin->setValue(theValue);
   theSpin->blockSignals(isBlocked);
@@ -158,6 +164,8 @@ QString objectInfo(const ObjectPtr& theObj, const bool isUseAttributesInfo)
       aFeatureStr.append("[disabled]");
     if (aRes->isConcealed())
       aFeatureStr.append("[concealed]");
+    if (ModelAPI_Tools::hasSubResults(aRes))
+      aFeatureStr.append("[hasSubResults]");
 
     aFeature = ModelAPI_Feature::feature(aRes);
   }
@@ -213,6 +221,7 @@ TopAbs_ShapeEnum shapeType(const QString& theType)
     MyShapeTypes["shell"] = TopAbs_SHELL;
     MyShapeTypes["solid"] = TopAbs_SOLID;
     MyShapeTypes["solids"] = TopAbs_SOLID;
+    MyShapeTypes["objects"] = TopAbs_SHAPE;
   }
   QString aType = theType.toLower();
   if (MyShapeTypes.contains(aType))
@@ -242,10 +251,19 @@ void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFe
   }
 }
 
-double defaultDeviationCoefficient()
+void setDefaultDeviationCoefficient(const TopoDS_Shape& theShape,
+                                    const Handle(Prs3d_Drawer)& theDrawer)
+{
+  if (!theShape.IsNull() && theShape.ShapeType() == TopAbs_EDGE)
+    theDrawer->SetDeviationCoefficient(1.e-4);
+}
+
+Quantity_Color color(const std::string& theSection,
+                     const std::string& theName,
+                     const std::string& theDefault)
 {
-  // this value is chosen by performance check. Test case is an extrusion on sketch circle.
-  return 1.e-3;
+  std::vector<int> aColor = Config_PropManager::color(theSection, theName, theDefault);
+  return Quantity_Color(aColor[0] / 255., aColor[1] / 255., aColor[2] / 255., Quantity_TOC_RGB);
 }
 
 }