]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Fixing problems with 0023451 by JGV
authorjfa <jfa@opencascade.com>
Fri, 15 Dec 2017 11:38:58 +0000 (14:38 +0300)
committerjfa <jfa@opencascade.com>
Fri, 15 Dec 2017 11:38:58 +0000 (14:38 +0300)
src/BlockFix/BlockFix_BlockFixAPI.cxx

index c6d6d32219f750bc901ce2b0b53aae91817cf3ae..7dcb72080c2538b86236b15f5a444128bd0965ec 100644 (file)
@@ -29,6 +29,9 @@
 #include <BlockFix.hxx>
 #include <BlockFix_UnionFaces.hxx>
 #include <BlockFix_UnionEdges.hxx>
+#include <ShapeUpgrade_UnifySameDomain.hxx>
+
+#include <Basics_OCCTVersion.hxx>
 
 #include <ShapeUpgrade_RemoveLocations.hxx>
 
@@ -66,6 +69,30 @@ void BlockFix_BlockFixAPI::Perform()
   // with singularities on boundaries by filling
   myShape = BlockFix::RefillProblemFaces(myShape);
 
+  //Unification
+  // default values
+  Standard_Boolean anUFaces = Standard_True;
+  if (myOptimumNbFaces == -1)
+    anUFaces = Standard_False;
+  Standard_Boolean anUEdges = Standard_True;
+  Standard_Boolean anConBS = Standard_False;
+  Standard_Boolean isAllowInternal = Standard_False;
+  Standard_Boolean isSafeInputMode = Standard_True;
+  Standard_Real aLinTol = Precision::Confusion();
+  Standard_Real aAngTol = Precision::Angular();
+  TopTools_MapOfShape aMapOfShapes;
+
+  ShapeUpgrade_UnifySameDomain Unifier;
+  Unifier.Initialize(myShape, anUEdges, anUFaces, anConBS);
+  Unifier.KeepShapes(aMapOfShapes);
+  Unifier.SetSafeInputMode(isSafeInputMode);
+  Unifier.AllowInternalEdges(isAllowInternal);
+  Unifier.SetLinearTolerance(aLinTol);
+  Unifier.SetAngularTolerance(aAngTol);
+  Unifier.Build();
+  TopoDS_Shape aRes = Unifier.Shape();
+
+  /*
   // faces unification
   BlockFix_UnionFaces aFaceUnifier;
   aFaceUnifier.GetTolerance() = myTolerance;
@@ -83,5 +110,7 @@ void BlockFix_BlockFixAPI::Perform()
   myShape = anEdgeUnifier.Perform(aResult,myTolerance);
 
   TopoDS_Shape aRes = BlockFix::FixRanges(myShape,myTolerance);
+  */
+  
   myShape = aRes;
 }