|Anonymous | Login||2020-11-30 18:12 MSK|
|My View | View Issues | Change Log | Roadmap|
|occt: master 3065019c|
|msv||bugmaster||master||2016-08-26 14:33:46||master 84caaf81|
|Affected Issues||0027804: Two breps cause intersections to loop for too long/infinitely|
|Changeset||0027804: Two breps cause intersections to loop for too long/infinitely
In ProjLib_ComputeApprox algorithm, compute correct parametric tolerance from the input 3D tolerance using surface resolution, in order to pass it to low-level 2D algorithm Approx_FitAndDivide2d (instantiation of the generic class Approx_ComputeCLine). Earlier 3D tolerance was used as parametric tolerance directly, which was a problem for surfaces with too small radius of curvature.
Also, eliminate redundant creation of the object of type AppParCurves_MultiCurve on each iteration in the method Approx_ComputeCLine::Compute.
The post treatment of the Edge/Edge intersections has been improved. Namely:
a. Making the procedure of sharing Edge/Edge intersection vertices consistent with intersection algorithm by enlarging bounding box of each vertex on half of Precision::Confusion();
b. Algorithm of computation of vertex tolerance (in order to cover tangent zone between Edges) has been changed for Line/Circle cases.
Test cases for issue CR27804
Adjusting test cases according to their new behavior.
Mark the test boolean/volumemaker/A8 as unstable between different versions of MSVS (2010 and 2013).
|mod - src/Approx/Approx_ComputeCLine.gxx|
|mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx|
|mod - src/ProjLib/ProjLib_ComputeApprox.cxx|
|mod - tests/boolean/volumemaker/A8|
|add - tests/bugs/moddata_3/bug27804_1|
|add - tests/bugs/moddata_3/bug27804_2|
|Copyright © 2000 - 2020 MantisBT Team|