From dde31f0675b133384fca841c72a1e200fc9eb895 Mon Sep 17 00:00:00 2001 From: jfa Date: Tue, 6 Aug 2013 09:37:47 +0000 Subject: [PATCH] Mantis issue 0021191: apply a fix by PKV for note 0012153 on the case of Glue by list (second constructor in GUI) --- src/GEOMImpl/GEOMImpl_GlueDriver.cxx | 54 ++++++++++++++++------------ 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/src/GEOMImpl/GEOMImpl_GlueDriver.cxx b/src/GEOMImpl/GEOMImpl_GlueDriver.cxx index 3f4aa4352..2e45e7ba5 100644 --- a/src/GEOMImpl/GEOMImpl_GlueDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_GlueDriver.cxx @@ -439,30 +439,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueWithWarnings (const TopoDS_Shape& theShape #if OCC_VERSION_LARGE > 0x06050200 Standard_Integer iWrnDetect = aGA.WarningStatus(); if (iWrnDetect == 2) { - /* - TopTools_ListIteratorOfListOfShape aItLS; - - // Sticked shapes are detected - const TopTools_IndexedDataMapOfShapeListOfShape& aIDMSS = pGluer2->StickedShapes(); - - Standard_Integer i, aNb = aIDMSS.Extent(); - for (i = 1; i <= aNb; ++i) { - // ancestor aSa (edge, wire face,..) - const TopoDS_Shape& aSa = aIDMSS.FindKey(i); - - // successors aSs (vertex, edge, ...) - // of the ancestor that are sticked - // for given value of the tolerance - const TopTools_ListOfShape& aLSS = aIDMSS.FindFromIndex(i); - aItLS.Initialize(aLSS); - for (; aItLS.More(); aItLS.Next()) { - const TopoDS_Shape& aSs = aItLS.Value(); - } - } - */ Standard_Failure::Raise("GLUE_ERROR_STICKED_SHAPES"); - //Standard_Failure::Raise("Sticked shapes are detected. The tolerance value is too big."); - //theWarning = "Sticked shapes are detected. The tolerance value is too big."; } #endif //modified by NIZNHY-PKV Tue Mar 13 14:07:14 2012t @@ -617,6 +594,37 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueByList (const TopoDS_Shape& theShape, // 2. Detect interferred shapes aGA.Detect(); + + //modified by NIZNHY-PKV Tue Mar 13 14:07:12 2012f +#if OCC_VERSION_LARGE > 0x06050200 + Standard_Integer iWrnDetect = aGA.WarningStatus(); + if (iWrnDetect == 2) { + /* + TopTools_ListIteratorOfListOfShape aItLS; + + // Sticked shapes are detected + const TopTools_IndexedDataMapOfShapeListOfShape& aIDMSS = pGluer2->StickedShapes(); + + Standard_Integer i, aNb = aIDMSS.Extent(); + for (i = 1; i <= aNb; ++i) { + // ancestor aSa (edge, wire face,..) + const TopoDS_Shape& aSa = aIDMSS.FindKey(i); + + // successors aSs (vertex, edge, ...) + // of the ancestor that are sticked + // for given value of the tolerance + const TopTools_ListOfShape& aLSS = aIDMSS.FindFromIndex(i); + aItLS.Initialize(aLSS); + for (; aItLS.More(); aItLS.Next()) { + const TopoDS_Shape& aSs = aItLS.Value(); + } + } + */ + Standard_Failure::Raise("GLUE_ERROR_STICKED_SHAPES"); + } +#endif + //modified by NIZNHY-PKV Tue Mar 13 14:07:14 2012t + Standard_Integer iErr = aGA.ErrorStatus(); if (iErr) { switch (iErr) {