occt: master 80d55adf

Author Committer Branch Timestamp Parent
abv abv master 2018-04-16 12:21:35 master ea1114eb
Affected Issues  0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception
Changeset 0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception

When checking if the split edge is oriented as the original one (BOPTools_AlgoTools::IsSplitToReverse()) the tangent vectors should be computed for both edges at the same point. This point is taken on the split edge and projected on the original edge.
The fix is intended to ensuring that the reference point will be taken inside the valid range of the split edge (i.e. not covered by the tolerance spheres of its bounding vertices) and the projection of this point on the original edge will be successful. Moreover, several sampling points are now taken on the split edge and processed until first valid point is found.

If requested (by a not null pointer) all *BOPTools_AlgoTools::IsSplitToReverse()* methods are now return the error status of the check. Before using the returned flag, the calling program should check this error status. For successful check the error status should be equal to zero.

New warning *BOPAlgo_AlertUnableToOrientTheShape* is now returned in the algorithms in Boolean component in case the check for correct shape orientation failed.

Test case for the issue.
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - src/BOPAlgo/BOPAlgo.msg Diff File
mod - src/BOPAlgo/BOPAlgo_Alerts.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_1.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.hxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D.hxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D_1.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools3D.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools3D.hxx Diff File
add - tests/bugs/modalg_7/bug29698 Diff File