occt: master 3065019c
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
bugmaster | master | 2016-08-26 14:33:46 | master 84caaf81 | |
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 | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx | Diff File | |||
mod - src/ProjLib/ProjLib_ComputeApprox.cxx | Diff File | |||
mod - tests/boolean/volumemaker/A8 | Diff File | |||
add - tests/bugs/moddata_3/bug27804_1 | Diff File | |||
add - tests/bugs/moddata_3/bug27804_2 | Diff File |