0023597: EDF 17891 - OCCT 7.3.0 - Problem with GetBlockNearPoint. A fix by JGV (edge orientation in GlueFaces algorithm).

This commit is contained in:
jfa 2018-10-29 12:31:05 +03:00
parent 2d81fbabd2
commit e7194e67dc

View File

@ -157,22 +157,27 @@ void GEOMAlgo_Gluer2::MakeFace(const TopoDS_Face& theF,
// //
if (!BRep_Tool::Degenerated(aEx)) { if (!BRep_Tool::Degenerated(aEx)) {
aEx.Orientation(TopAbs_FORWARD); aEx.Orientation(TopAbs_FORWARD);
TopoDS_Edge aE_forward = aE;
aE_forward.Orientation(TopAbs_FORWARD);
if (bIsUPeriodic) { if (bIsUPeriodic) {
GEOMAlgo_AlgoTools::RefinePCurveForEdgeOnFace(aEx, aFF, aUMin, aUMax); GEOMAlgo_AlgoTools::RefinePCurveForEdgeOnFace(aEx, aFF, aUMin, aUMax);
} }
// //
//modified by NIZNHY-PKV Fri Feb 03 11:18:17 2012f //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) { if (iRet) {
continue; continue;
} }
//modified by NIZNHY-PKV Fri Feb 03 11:18:20 2012t //modified by NIZNHY-PKV Fri Feb 03 11:18:20 2012t
// //
bIsToReverse=GEOMAlgo_AlgoTools::IsSplitToReverse(aEx, aE, myContext); bIsToReverse=GEOMAlgo_AlgoTools::IsSplitToReverse(aEx, aE_forward, myContext);
if (bIsToReverse) { //bIsToReverse=BOPTools_AlgoTools::IsSplitToReverse(aEx, aE, myContext);
aEx.Orientation(aE.Orientation());
if (bIsToReverse)
aEx.Reverse(); aEx.Reverse();
} }
}
else { else {
aEx.Orientation(aE.Orientation()); aEx.Orientation(aE.Orientation());
} }