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

0031853: Mesh - holes in triangulation with large linear deflection

0030442: Mesh - broken triangulation on pipe shape

Scale down min size parameter for NURBS taking into account its U and V resolution in order to prevent comparison of 2d parameters with 3d value involved in filtering process.
This commit is contained in:
oan
2022-09-16 17:28:22 +03:00
committed by smoskvin
parent c4ea4ca3d1
commit a939fd40eb
38 changed files with 95 additions and 46 deletions

View File

@@ -553,12 +553,17 @@ Handle(IMeshData::SequenceOfReal) BRepMesh_NURBSRangeSplitter::computeGrainAndFi
aMinDiff /= theDelta;
}
aMinDiff = Max(theParameters.MinSize, aMinDiff);
const Handle(BRepAdaptor_Surface)& aSurface = GetSurface();
const Standard_Real aMinSize2d = Max(
aSurface->UResolution(theParameters.MinSize),
aSurface->UResolution(theParameters.MinSize));
aMinDiff = Max(aMinSize2d, aMinDiff);
const Standard_Real aDiffMaxLim = 0.1 * theRangeDiff;
const Standard_Real aDiffMinLim = Max(0.005 * theRangeDiff,
2. * theTol2d);
const Standard_Real aDiff = Max(theParameters.MinSize,
const Standard_Real aDiff = Max(aMinSize2d,
Min(aDiffMaxLim, aDiffMinLim));
return filterParameters(theSourceParams, aMinDiff, aDiff, theAllocator);
}