1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

239343: OCC fails to work with offset surfaces with singularities

Add test cases for this fix
This commit is contained in:
Roman Lygin
2013-05-23 14:52:21 +04:00
parent f7b4312f04
commit c15398ab70
6 changed files with 106 additions and 19 deletions

View File

@@ -997,9 +997,14 @@ gp_Pnt2d ShapeAnalysis_Surface::ValueOfUV(const gp_Pnt& P3D,const Standard_Real
// Forcer appel a IsU-VClosed
if (myUCloseVal < 0) IsUClosed();
if (myVCloseVal < 0) IsVClosed();
//modified by rln during fixing CSR # BUC60035 entity #D231
Standard_Real du = Min (myUDelt, SurfAdapt.UResolution (preci)),
dv = Min (myVDelt, SurfAdapt.VResolution (preci));
Standard_Real du = 0., dv = 0.;
//extension of the surface range is limited to non-offset surfaces as the latter
//can throw exception (e.g. Geom_UndefinedValue) when computing value - see id23943
if (!mySurf->IsKind (STANDARD_TYPE (Geom_OffsetSurface))) {
//modified by rln during fixing CSR # BUC60035 entity #D231
du = Min (myUDelt, SurfAdapt.UResolution (preci));
dv = Min (myVDelt, SurfAdapt.VResolution (preci));
}
myExtSrf = mySurf;
Standard_Real Tol = Precision::PConfusion();
myExtPS.SetFlag (Extrema_ExtFlag_MIN);