occt: master 5185b161

Author Committer Branch Timestamp Parent
msv bugmaster master 2016-08-16 09:41:23 master 2613378e
Affected Issues  0027780: Face-face intersection produces 2D curve that has reversed derivative at its end
Changeset 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.
mod - src/IntPatch/IntPatch_Intersection.cxx Diff File
mod - src/IntPatch/IntPatch_WLineTool.cxx Diff File
mod - src/IntPatch/IntPatch_WLineTool.hxx Diff File
add - tests/bugs/modalg_6/bug27780 Diff File