1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00

Condition for surface of revolution is changed to fix case bug25892_13.

This commit is contained in:
aml
2016-02-16 18:46:34 +03:00
parent 7c53747c3e
commit 7f6d76dcfb

View File

@@ -1622,11 +1622,17 @@ void ProjLib_CompProjectedCurve::UpdateTripleByTrapCriteria(gp_Pnt &thePoint) co
// Check possible traps cases:
// 25892 bug.
if (mySurface->GetType() == GeomAbs_SurfaceOfRevolution &&
(Abs (thePoint.Z() - mySurface->FirstVParameter()) < Precision::PConfusion() ||
Abs (thePoint.Z() - mySurface->LastVParameter() ) < Precision::PConfusion() ))
if (mySurface->GetType() == GeomAbs_SurfaceOfRevolution)
{
isProblemsPossible = Standard_True;
// Compute maximal deviation from 3D and choose the biggest one.
Standard_Real aVRes = mySurface->VResolution(Precision::Confusion());
Standard_Real aMaxTol = Max(Precision::PConfusion(), aVRes);
if (Abs (thePoint.Z() - mySurface->FirstVParameter()) < aMaxTol ||
Abs (thePoint.Z() - mySurface->LastVParameter() ) < aMaxTol )
{
isProblemsPossible = Standard_True;
}
}
// 27135 bug. Trap on degenerated edge.