Fix of regressions on pipe

This commit is contained in:
skv 2013-02-14 13:24:00 +00:00
parent 9e669d1bbb
commit bf84006866

View File

@ -97,12 +97,6 @@
#include "utilities.h" #include "utilities.h"
//////////////////////////////////////////////////////////////////////////
// Uncomment below macro to perform gluing in the end of MakePipe operation
// as fix of issue 0020207.
//////////////////////////////////////////////////////////////////////////
//#define GLUE_0020207
//======================================================================= //=======================================================================
//function : GetID //function : GetID
@ -2483,23 +2477,22 @@ Standard_Integer GEOMImpl_PipeDriver::Execute (TFunction_Logbook& log) const
Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result"); Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
} }
// Glue (for bug 0020207) if (aType != PIPE_BASE_PATH &&
// No gluing is needed as the bug 0020207 is fixed in OCCT. aType != PIPE_SHELLS_WITHOUT_PATH) {
#ifdef GLUE_0020207 TopExp_Explorer anExpV (aShape, TopAbs_VERTEX);
TopExp_Explorer anExpV (aShape, TopAbs_VERTEX); if (anExpV.More()) {
if (anExpV.More()) { Standard_Real aVertMaxTol = -RealLast();
Standard_Real aVertMaxTol = -RealLast(); for (; anExpV.More(); anExpV.Next()) {
for (; anExpV.More(); anExpV.Next()) { TopoDS_Vertex aVertex = TopoDS::Vertex(anExpV.Current());
TopoDS_Vertex aVertex = TopoDS::Vertex(anExpV.Current()); Standard_Real aTol = BRep_Tool::Tolerance(aVertex);
Standard_Real aTol = BRep_Tool::Tolerance(aVertex); if (aTol > aVertMaxTol)
if (aTol > aVertMaxTol) aVertMaxTol = aTol;
aVertMaxTol = aTol; }
aVertMaxTol += Precision::Confusion();
aShape = GEOMImpl_GlueDriver::GlueFaces(aShape, aVertMaxTol, Standard_True);
//aShape = GEOMImpl_GlueDriver::GlueFaces(aShape, Precision::Confusion(), Standard_True);
} }
aVertMaxTol += Precision::Confusion();
aShape = GEOMImpl_GlueDriver::GlueFaces(aShape, aVertMaxTol, Standard_True);
//aShape = GEOMImpl_GlueDriver::GlueFaces(aShape, Precision::Confusion(), Standard_True);
} }
#endif
TopoDS_Shape aRes = GEOMUtils::CompsolidToCompound(aShape); TopoDS_Shape aRes = GEOMUtils::CompsolidToCompound(aShape);
aFunction->SetValue(aRes); aFunction->SetValue(aRes);