0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception
authoremv <emv@opencascade.com>
Mon, 16 Apr 2018 12:21:35 +0000 (15:21 +0300)
committerabv <abv@opencascade.com>
Wed, 23 May 2018 02:44:12 +0000 (05:44 +0300)
commit80d55adf7ca4b794378e937dd5d965a4c087816a
tree2143a3c553d19945201fc90936e1ba9c84f94625
parentea1114eb8548e1d865808e339c6209eacf2c0cae
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.
15 files changed:
dox/dev_guides/upgrade/upgrade.md
src/BOPAlgo/BOPAlgo.msg
src/BOPAlgo/BOPAlgo_Alerts.hxx
src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
src/BOPAlgo/BOPAlgo_Builder.hxx
src/BOPAlgo/BOPAlgo_Builder_1.cxx
src/BOPAlgo/BOPAlgo_Builder_2.cxx
src/BOPAlgo/BOPAlgo_Builder_3.cxx
src/BOPTools/BOPTools_AlgoTools.cxx
src/BOPTools/BOPTools_AlgoTools.hxx
src/BOPTools/BOPTools_AlgoTools2D.hxx
src/BOPTools/BOPTools_AlgoTools2D_1.cxx
src/BOPTools/BOPTools_AlgoTools3D.cxx
src/BOPTools/BOPTools_AlgoTools3D.hxx
tests/bugs/modalg_7/bug29698 [new file with mode: 0644]