0023958: Section of shell by plane is incomplete.
authoremv <emv@opencascade.com>
Thu, 26 Sep 2013 16:25:54 +0000 (20:25 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 26 Sep 2013 16:26:50 +0000 (20:26 +0400)
commitb4109929d6fe8fb1c86778bc57b3df86b37c063b
treeaea1f64df5bfc22ebca5456fa61e2845b48d4ea9
parentabe4607711710114473f5b0146e8b88e6bdf74f0
0023958: Section of shell by plane is incomplete.
Modifications 1
1. To avoid creation of micro edges in the class BOPAlgo_PaveFiller added two new functions ForceInterfVE and
   ForceInterfVF which updates tolerance of Vertex to make it interfere with Edge and Face accordingly.
2. In the class BOPInt_Tools added new function IsInRange which checks whether two ranges cross each other.
3. In the class BOPTools_AlgoTools added new function IntersectCurves2d which intersects pcurves of the face
   to check it on the self-interference.
4. In the function IntTools_BeanFaceIntersector::FastComputeExactIntersection() the check on the coincidence of the whole
   edge with the face (BOPTools_AlgoTools::IsBlockInOnFace) replaced  with the check on the coincidence of one intermediate point with that face.
5. Test cases bugs modalg_1 bug1255, bug1255_1 has been updated with more correct value of the result.
6. TODO statement has been removed from the test cases boolean bcut_complex B1,B3,B5,C2,C4,C6,C8 as they are correct.

Adding test case for issue CR23958

Modification 2
1. In class BOPAlgo_PaveFiller added new function CheckPlanes(nF1, nF2) that checks whether two planar faces have common or intersecting sub shapes.
If these two faces do not have such sub shapes there is no need to intersect them.
2. In the function BOPAlgo_PaveFiller::MakeBlocks() added block for reducing the tolerance values to the previous state for the vertices
that were put on the section curve (with increasing of its tolerance value) that was rejected by the algorithm.

Modification 3
Back to Extrema_ExtAlgo_Grad algorithm in extrema computations in Boolean Operations algorithm.
25 files changed:
src/BOPAlgo/BOPAlgo_PaveFiller.cdl
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPCol/BOPCol.cdl
src/BOPCol/BOPCol_DataMapOfIntegerReal.hxx [new file with mode: 0644]
src/BOPCol/FILES
src/BOPInt/BOPInt_Context.cxx
src/BOPInt/BOPInt_ShrunkRange.cxx
src/BOPInt/BOPInt_Tools.cdl
src/BOPInt/BOPInt_Tools.cxx
src/BOPTools/BOPTools_AlgoTools_1.cxx
src/IntTools/IntTools_BeanFaceIntersector.cxx
tests/boolean/bcut_complex/B1
tests/boolean/bcut_complex/B3
tests/boolean/bcut_complex/B5
tests/boolean/bcut_complex/C2
tests/boolean/bcut_complex/C4
tests/boolean/bcut_complex/C6
tests/boolean/bcut_complex/C8
tests/boolean/bcut_complex/N9
tests/bugs/modalg_1/bug1255
tests/bugs/modalg_1/bug1255_1
tests/bugs/modalg_4/bug62
tests/bugs/modalg_5/bug23958 [new file with mode: 0644]