]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Bug 0019766: EDF 720 GEOM: Building a Wire from unconnected edges by introducing...
authorjfa <jfa@opencascade.com>
Thu, 4 Jun 2009 13:20:44 +0000 (13:20 +0000)
committerjfa <jfa@opencascade.com>
Thu, 4 Jun 2009 13:20:44 +0000 (13:20 +0000)
src/GEOMImpl/GEOMImpl_ShapeDriver.cxx

index 1165007ea9f0bab0746bb005447220d30d6f6688..ca0f348edef62f74fb985200661ad786f8ada1c9 100644 (file)
@@ -168,20 +168,22 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
       if (aFW->StatusConnected(ShapeExtend_FAIL)) {
         Standard_ConstructionError::Raise("Wire construction failed: cannot build connected wire");
       }
-
       // IMP 0019766
-      aFW->FixGapsByRangesMode() = Standard_True;
-      if (aFW->FixGaps3d()) {
-        Handle(ShapeExtend_WireData) sbwd = aFW->WireData();
-        Handle(ShapeFix_Edge) aFe = new ShapeFix_Edge;
-        for (Standard_Integer iedge = 1; iedge <= sbwd->NbEdges(); iedge++) {
-          TopoDS_Edge aEdge = TopoDS::Edge(sbwd->Edge(iedge));
-          aFe->FixVertexTolerance(aEdge);
-          aFe->FixSameParameter(aEdge);
+      if (aFW->StatusConnected(ShapeExtend_DONE3)) {
+        // Confused with <prec> but not Analyzer.Precision(), set the same
+        aFW->FixGapsByRangesMode() = Standard_True;
+        if (aFW->FixGaps3d()) {
+          Handle(ShapeExtend_WireData) sbwd = aFW->WireData();
+          Handle(ShapeFix_Edge) aFe = new ShapeFix_Edge;
+          for (Standard_Integer iedge = 1; iedge <= sbwd->NbEdges(); iedge++) {
+            TopoDS_Edge aEdge = TopoDS::Edge(sbwd->Edge(iedge));
+            aFe->FixVertexTolerance(aEdge);
+            aFe->FixSameParameter(aEdge);
+          }
+        }
+        else if (aFW->StatusGaps3d(ShapeExtend_FAIL)) {
+          Standard_ConstructionError::Raise("Wire construction failed: cannot fix 3d gaps");
         }
-      }
-      else if (aFW->StatusGaps3d(ShapeExtend_FAIL)) {
-        Standard_ConstructionError::Raise("Wire construction failed: cannot fix 3d gaps");
       }
 
       aShape = aFW->WireAPIMake();