Salome HOME
Copyright update 2021
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Fillet.cpp
index 9507cad1a9970b0b557863383d559d498b114031..8fd28ecb690f14be18060d8e64c5d54a54b5cddd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2021  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -81,7 +81,7 @@ static std::set<FeaturePtr> findFeaturesToRemove(const FeaturePtr theFeature,
                                                  const AttributePtr theAttribute);
 
 SketchPlugin_Fillet::SketchPlugin_Fillet()
-: myFilletCreated(false), myIsReversed(false)
+: myIsReversed(false), myFilletCreated(false)
 {
   myIsNotInversed[0] = myIsNotInversed[1] = true;
 }
@@ -223,6 +223,18 @@ bool SketchPlugin_Fillet::calculateFilletParameters()
     if (anOwner && !anOwner->isExternal())
       aFilletFeatures.insert(anOwner);
   }
+  // remove auxilary entities from set of coincident features
+  if (aFilletFeatures.size() > 2) {
+    std::set<FeaturePtr>::iterator anIt = aFilletFeatures.begin();
+    while (anIt != aFilletFeatures.end()) {
+      if ((*anIt)->boolean(SketchPlugin_SketchEntity::AUXILIARY_ID())->value()) {
+        std::set<FeaturePtr>::iterator aRemoveIt = anIt++;
+        aFilletFeatures.erase(aRemoveIt);
+      }
+      else
+        ++anIt;
+    }
+  }
   if (aFilletFeatures.size() != 2) {
     setError("Error: Selected point does not have two suitable edges for fillet.");
     return false;
@@ -373,7 +385,7 @@ FeaturePtr SketchPlugin_Fillet::createFilletApex(const GeomPnt2dPtr& theCoordina
 
 struct Length {
   AttributePtr myPoints[2];
-  std::string myValueText;
+  std::wstring myValueText;
   double myValueDouble;
   GeomPnt2dPtr myFlyoutPoint;
   int myLocationType;