0027780: Face-face intersection produces 2D curve that has reversed derivative at...
authormsv <msv@opencascade.com>
Tue, 16 Aug 2016 09:41:23 +0000 (12:41 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 25 Aug 2016 08:26:05 +0000 (11:26 +0300)
commit5185b1617a89397a36400e4af65e4f477e3c2ca2
tree4d1ba5bf334cdd62c8ed19f6a51e26712ab39c2a
parent2613378e60ff5e517b2bf73699184d0c6f636bb8
0027780: Face-face intersection produces 2D curve that has reversed derivative at its end

The matter was that with starting point paased into intersector the walking line goes one point outside of the surface domain. Then during purging this extra point is removed from the line but its geometry is used for the last vertex. This makes a set of points invalid for approximation, and as a result we obtain the curve with reversed tangent direction at the end.

The API of the method IntPatch_WLineTool::ComputePurgedWLine has been changed to insert a new Boolean parameter RestrictLine. If this parameter is false than the step of removing of outside points is skipped, and the result line is not distorted. This flag is determined inside IntTools_FaceFace to tell the intersector if it is needed to limit intersection line by surface domain.

Test case has been added.
src/IntPatch/IntPatch_Intersection.cxx
src/IntPatch/IntPatch_WLineTool.cxx
src/IntPatch/IntPatch_WLineTool.hxx
tests/bugs/modalg_6/bug27780 [new file with mode: 0644]