]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Merge remote branch 'origin/V7_dev' into V8_0_0_BR
authorvsr <vsr@opencascade.com>
Fri, 5 Feb 2016 14:24:15 +0000 (17:24 +0300)
committervsr <vsr@opencascade.com>
Fri, 5 Feb 2016 14:24:15 +0000 (17:24 +0300)
src/GEOM/GEOM_Engine.cxx
src/GEOMImpl/GEOMImpl_PipeDriver.cxx

index e7921bed45520072b77f5adaec1feb7d13c833ca..41be7c204759355bfbe06639a660505cd3ecd30d 100644 (file)
@@ -1278,7 +1278,10 @@ void FillMapOfRef(const Handle(GEOM_Function) &theFunction,
 
             const int aRefTag = GetTag(anObjEntry);
 
-            theRefMap[anObjTag].push_back(aRefTag);
+            if (anObjTag != aRefTag) {
+              // Avoid making references for operations without copy.
+              theRefMap[anObjTag].push_back(aRefTag);
+            }
           }
         }
       }
index ef5b07e7943a51d232e5e7aa9ed7e7a13bcdebf7..039bf002733835441382fdcf1bd5d509b69ad62e 100644 (file)
@@ -180,6 +180,8 @@ static GeomFill_Trihedron EvaluateBestSweepMode(const TopoDS_Shape& Spine)
 //=======================================================================
 static Standard_Boolean BuildPipeShell(BRepOffsetAPI_MakePipeShell &theBuilder)
 {
+  theBuilder.SetForceApproxC1(Standard_True);
+
   theBuilder.Build();
 
   Standard_Boolean isDone = theBuilder.IsDone();
@@ -3125,7 +3127,8 @@ Standard_Integer GEOMImpl_PipeDriver::Execute (TFunction_Logbook& log) const
     else
     {
       GeomFill_Trihedron theBestMode = EvaluateBestSweepMode(aWirePath);
-      BRepOffsetAPI_MakePipe aMkPipe(aWirePath, aShapeBase, theBestMode);
+      BRepOffsetAPI_MakePipe aMkPipe
+        (aWirePath, aShapeBase, theBestMode, Standard_True);
 
       if (aMkPipe.IsDone() && aMkPipe.ErrorOnSurface() <= TolPipeSurf) {
         aShape = aMkPipe.Shape();
@@ -3137,7 +3140,7 @@ Standard_Integer GEOMImpl_PipeDriver::Execute (TFunction_Logbook& log) const
       } else if (theBestMode != GeomFill_IsDiscreteTrihedron) {
         // Try to use Descrete Trihedron mode.
         BRepOffsetAPI_MakePipe aMkPipeDescrete
-          (aWirePath, aShapeBase, GeomFill_IsDiscreteTrihedron);
+          (aWirePath, aShapeBase, GeomFill_IsDiscreteTrihedron, Standard_True);
 
         if (aMkPipeDescrete.IsDone()) {
           aShape = aMkPipeDescrete.Shape();