1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

Additional fix for 29713

0029713: Test Harness command "fixshape" can not fix attached face

Fix to reverse invalid oriented pcurves was made
This commit is contained in:
gka
2018-04-20 17:52:21 +03:00
parent fc87027267
commit 3277ba18fa

View File

@@ -438,7 +438,7 @@ Standard_Boolean ShapeAnalysis_Edge::CheckCurve3dWithPCurve (const TopoDS_Edge&
TopoDS_Vertex aFirstVert = FirstVertex (edge);
TopoDS_Vertex aLastVert = LastVertex (edge);
if (aFirstVert.IsNull() || aLastVert.IsNull())
if (aFirstVert.IsNull() || aLastVert.IsNull() || aFirstVert.IsSame(aLastVert))
return Standard_False;
Standard_Real preci1 = BRep_Tool::Tolerance (aFirstVert),
@@ -469,14 +469,14 @@ Standard_Boolean ShapeAnalysis_Edge::CheckPoints (const gp_Pnt& P1A,
const Standard_Real preci2)
{
myStatus = ShapeExtend::EncodeStatus (ShapeExtend_OK);
if (P1A.SquareDistance (P2A) <= preci1 * preci1 &&
P1B.SquareDistance (P2B) <= preci2 * preci2)
return Standard_False;
else if (P1A.Distance (P2B) + (P1B.Distance (P2A)) <
P1A.Distance (P2A) + (P1B.Distance (P2B)))
if( (P1A.SquareDistance(P2B) < P1A.SquareDistance(P2A) ) &&
( P1B.SquareDistance(P2A) < P1B.SquareDistance(P2B)) )
{
myStatus |= ShapeExtend::EncodeStatus(ShapeExtend_DONE1);
return Standard_True;
}
return Standard_False;
}
//=======================================================================