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

0031655: Modeling Algorithms - Invalid result of General Fuse operation

IntTools_BeanFaceIntersector: Perform exact intersection range search in case there are few intersection points.
This commit is contained in:
emv
2020-07-10 09:02:26 +03:00
committed by bugmaster
parent 210914d562
commit 529444be92
3 changed files with 59 additions and 3 deletions

View File

@@ -582,10 +582,19 @@ void IntTools_BeanFaceIntersector::ComputeAroundExactIntersection()
Handle(BRepAdaptor_HSurface) aSurface = new BRepAdaptor_HSurface(mySurface);
anExactIntersector.Perform(aCurve, aSurface);
if(anExactIntersector.IsDone()) {
if (anExactIntersector.IsDone()) {
Standard_Integer i = 0;
if (anExactIntersector.NbPoints() > 1)
{
// To avoid unification of the intersection points in a single intersection
// range, perform exact range search considering the lowest possible tolerance
// for edge and face.
myCriteria = 3 * Precision::Confusion();
myCurveResolution = myCurve.Resolution (myCriteria);
}
for(i = 1; i <= anExactIntersector.NbPoints(); i++) {
const IntCurveSurface_IntersectionPoint& aPoint = anExactIntersector.Point(i);