From: jfa Date: Fri, 3 Nov 2006 09:05:46 +0000 (+0000) Subject: PAL12612: Partition failed. Fix: set approximation parameter of boolean operation... X-Git-Tag: V3_2_3pre2~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=2b5a1ab419098ec231ea3d36bafebc96b475d85b;p=modules%2Fgeom.git PAL12612: Partition failed. Fix: set approximation parameter of boolean operation SECTION to 'true' to have smooth BSpline curves for new edges, where analytic curve is not possible. --- diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx index 045ca5ade..2a7c71386 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx @@ -257,7 +257,13 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const TopTools_ListIteratorOfListOfShape itSub2 (listShape2); for (; itSub2.More(); itSub2.Next()) { TopoDS_Shape aValue2 = itSub2.Value(); - BRepAlgoAPI_Section BO (aValue1, aValue2); + BRepAlgoAPI_Section BO (aValue1, aValue2, Standard_False); + // Set approximation to have an attached 3D BSpline geometry to each edge, + // where analytic curve is not possible. Without this flag in some cases + // we obtain BSpline curve of degree 1 (C0), which is slowly + // processed by some algorithms (Partition for example). + BO.Approximation(Standard_True); + BO.Build(); if (!BO.IsDone()) { StdFail_NotDone::Raise("Section operation can not be performed on the given shapes"); }