From e7194e67dceaeb1404a5c019c629db6f7ac082f2 Mon Sep 17 00:00:00 2001 From: jfa Date: Mon, 29 Oct 2018 12:31:05 +0300 Subject: [PATCH] 0023597: EDF 17891 - OCCT 7.3.0 - Problem with GetBlockNearPoint. A fix by JGV (edge orientation in GlueFaces algorithm). --- src/GEOMAlgo/GEOMAlgo_Gluer2_1.cxx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer2_1.cxx b/src/GEOMAlgo/GEOMAlgo_Gluer2_1.cxx index 8aaf3630b..156989a4e 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer2_1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer2_1.cxx @@ -157,21 +157,26 @@ void GEOMAlgo_Gluer2::MakeFace(const TopoDS_Face& theF, // if (!BRep_Tool::Degenerated(aEx)) { aEx.Orientation(TopAbs_FORWARD); + TopoDS_Edge aE_forward = aE; + aE_forward.Orientation(TopAbs_FORWARD); if (bIsUPeriodic) { GEOMAlgo_AlgoTools::RefinePCurveForEdgeOnFace(aEx, aFF, aUMin, aUMax); } // //modified by NIZNHY-PKV Fri Feb 03 11:18:17 2012f - iRet=GEOMAlgo_AlgoTools::BuildPCurveForEdgeOnFace(aE, aEx, aFF, myContext); + iRet=GEOMAlgo_AlgoTools::BuildPCurveForEdgeOnFace(aE_forward, aEx, aFF, myContext); if (iRet) { continue; } //modified by NIZNHY-PKV Fri Feb 03 11:18:20 2012t // - bIsToReverse=GEOMAlgo_AlgoTools::IsSplitToReverse(aEx, aE, myContext); - if (bIsToReverse) { + bIsToReverse=GEOMAlgo_AlgoTools::IsSplitToReverse(aEx, aE_forward, myContext); + //bIsToReverse=BOPTools_AlgoTools::IsSplitToReverse(aEx, aE, myContext); + + aEx.Orientation(aE.Orientation()); + + if (bIsToReverse) aEx.Reverse(); - } } else { aEx.Orientation(aE.Orientation()); -- 2.30.2