]> OCCT Git - occt-copy.git/commit
0028017: Unexpected result of General Fuse operation
authormsv <msv@opencascade.com>
Fri, 16 Dec 2016 08:59:13 +0000 (11:59 +0300)
committerrnv <rnv@opencascade.com>
Mon, 13 Mar 2017 08:35:20 +0000 (11:35 +0300)
commit46c3e95ee2b3f95d4dc84512af638f61a01164f8
tree00d3621e93b2b92695642e3ab74231e7bf951cec
parent9f88d1ba020fd6ff4296284749f7053abd1fb3a6
0028017: Unexpected result of General Fuse operation

Several improvements have been made in BO code to fix the bug:

- Create empty edge-edge interference if intersection is close to an end vertex. This will help to avoid creation of unnecessary edge-face intersections.
- Improve PutPaveOnCurve() method to join nearly located vertices when they are put on the same section curve.
- Add processing of same-domain vertices for section edges in UpdatePaveBlocks() method.
- Improve the method CorrectWires() in order to not increase vertex tolerance if it will cover the major part of an edge.
- Replace vertices of section edges by same-domain equivalents.
- In the algorithm BOPAlgo_WireSplitter, correct angles computation and evaluation, taking into account periodicity.
- Modify PostTreatFF to properly take into account the orientations of coinciding section edges.
- In IntTools_Context::ComputePE, check distance from the point to vertices of the edge if the projection to the curve is failure.

Tests update:
- test offset\faces_type_i\C9 has been updated; now instead of returning bad shape it returns null result.

Notes for porting:
- Modify BopAlgo_PaveFiller so that on output each interference refers to the new vertex that will hit in the result (same-domain of the initial new vertex).
- Make the method BOPDS_DS::Index() returning valid index for new shapes.

// eliminate compile warning on VC14
13 files changed:
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx
src/BOPDS/BOPDS_DS.cxx
src/BOPDS/BOPDS_DS.hxx
src/BOPTest/BOPTest_DebugCommands.cxx
src/BOPTools/BOPTools_AlgoTools_1.cxx
src/IntTools/IntTools_Context.cxx
tests/bugs/modalg_6/bug28017 [new file with mode: 0644]
tests/offset/faces_type_i/C9