0028486: Fuse of several solids fails due to presence of common zones between faces
authoremv <emv@opencascade.com>
Tue, 21 Feb 2017 08:39:29 +0000 (11:39 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 16 Mar 2017 07:47:51 +0000 (10:47 +0300)
commit32e849ebc9b794d3ef37188aa4b99eda5073b61e
tree8d9b2f05aaf63dcb72e53c22e88d6a57b3777e51
parente99816df7f2820804a5065f552a344bf94ed2d28
0028486: Fuse of several solids fails due to presence of common zones between faces

1. Exception in intersection of two analytical faces has been fixed by adding a simple check on number of vertices
in the resulting analytical curve;

2. Projection of the Circle on the Cone now checks if the Circle's normal direction is parallel to the Cone direction.
If it is not, the different, more advanced, algorithm will be used for projection - ProjLib_ComputeApprox;

3. Intersection of the Edge with the Face (IntTools_EdgeFace algorithm) in QuickCoincidenceCheck mode has been fixed to
avoid the checking of the type of the intersection result if the coincidence check gives the positive result;

4. All common IN edges of the intersecting faces has been added for intersection with section edges to avoid self-intersection in the result;

5. Post treatment of the section edges in Boolean operations has been improved with the new stage which treats the possible
common zones, not detected by the intersection algorithm, between faces by intersecting each section edge with all faces,
not participated in its creation, and in case of coincidence putting it as IN edge into FaceInfo structure of the face.
The new function has been implemented for that - BOPAlgo_PaveFiller::PutSEInOtherFaces().

6. Checking for the SameDomain splits of faces in Boolean Operations has been modified to process the pairs of faces in
which both the section curves and common zones are present.

7. Adjustment of the test case boolean gdml_private ZH3 as improvement.

8. Test cases for the issue.

9. Test cases for the parent issue - 0026789.
14 files changed:
src/BOPAlgo/BOPAlgo_Builder_2.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/IntPatch/IntPatch_ALineToWLine.cxx
src/IntTools/IntTools_EdgeFace.cxx
src/ProjLib/ProjLib_Cone.cxx
tests/boolean/gdml_private/ZH3
tests/bugs/modalg_6/bug26789_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug26789_2 [new file with mode: 0644]
tests/bugs/modalg_6/bug26789_3 [new file with mode: 0644]
tests/bugs/modalg_6/bug28486_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug28486_2 [new file with mode: 0644]
tests/bugs/modalg_6/bug28486_3 [new file with mode: 0644]
tests/bugs/modalg_6/bug28486_4 [new file with mode: 0644]