Salome HOME
Issue #1467: pipe problem.
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_SortListOfShapes.cpp
index f75b9ae655b0f99e7b2de0b262ade575de0ed365..730def474410d2313c78a2cca5b9124e70935659 100644 (file)
@@ -116,10 +116,11 @@ class CompareShapes
 
   bool isLess(const gp_Pnt& theLHS, const gp_Pnt& theRHS)
   {
+    static const double aTol = 10. * Precision::Confusion();
     for (int anIndex = 1; anIndex <= 3; ++anIndex) {
-      if (isLessWithTol(theLHS.Coord(anIndex), theRHS.Coord(anIndex), Precision::Confusion()))
+      if (isLessWithTol(theLHS.Coord(anIndex), theRHS.Coord(anIndex), aTol))
         return true;
-      else if (isLessWithTol(theRHS.Coord(anIndex), theLHS.Coord(anIndex), Precision::Confusion()))
+      else if (isLessWithTol(theRHS.Coord(anIndex), theLHS.Coord(anIndex), aTol))
         return false;
     }
     // equal points
@@ -133,7 +134,7 @@ class CompareShapes
     std::map<TopoDS_TShape*, Bnd_Box>::iterator aFound = myShapes.find(aS);
     if (aFound == myShapes.end()) {
       Bnd_Box aBB;
-      BRepBndLib::Add(aShape, aBB);
+      BRepBndLib::AddOptimal(aShape, aBB);
       myShapes[aS] = aBB;
       aFound = myShapes.find(aS);
     }