occt: master 32e849eb

Author Committer Branch Timestamp Parent
emv bugmaster master 2017-02-21 08:39:29 master e99816df
Changeset 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.
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx Diff File
mod - src/IntPatch/IntPatch_ALineToWLine.cxx Diff File
mod - src/IntTools/IntTools_EdgeFace.cxx Diff File
mod - src/ProjLib/ProjLib_Cone.cxx Diff File
mod - tests/boolean/gdml_private/ZH3 Diff File
add - tests/bugs/modalg_6/bug26789_1 Diff File
add - tests/bugs/modalg_6/bug26789_2 Diff File
add - tests/bugs/modalg_6/bug26789_3 Diff File
add - tests/bugs/modalg_6/bug28486_1 Diff File
add - tests/bugs/modalg_6/bug28486_2 Diff File
add - tests/bugs/modalg_6/bug28486_3 Diff File
add - tests/bugs/modalg_6/bug28486_4 Diff File