0024968: Impove BRepMesh_Classifier to cope with intersection of huge number of wires
authoroan <oan@opencascade.com>
Thu, 10 Jul 2014 10:40:36 +0000 (14:40 +0400)
committerapn <apn@opencascade.com>
Thu, 10 Jul 2014 10:41:09 +0000 (14:41 +0400)
commit01a6e62bc2a126427ecc05443219f7464c5efc69
treeef0234cfefc55043b68ecac6c1a87f5f50ae2b69
parent0e9d3b83b88ae69226681e6678f37c53e156401e
0024968: Impove BRepMesh_Classifier to cope with intersection of huge number of wires

BRepMesh_Classifier: Two-pass approach for intersection check with possibility to run it in parallel mode.
First pass - bounding boxes of segments are checked for overlapping;
Second pass - intersection point is calculated in case if overlapping is detected.

Make NCollection_UBTree::ChangeLastNode() exported due to compilation error on Linux platform.
Reason: method does not depend on template parameters, so it should be available.

Revert previous change and try to use another trick for Linux

Fix compilation warning on MacOS: remove redundant constant
Fix regressions: do not consider insignificant loops in case of self intersections on the same wire.
More sugar solution for compilation errors on NCollection_EBTree on Linux

Test cases for issue CR24968
29 files changed:
src/BRepMesh/BRepMesh.cdl
src/BRepMesh/BRepMesh_BiPoint.cdl [deleted file]
src/BRepMesh/BRepMesh_BiPoint.cxx [deleted file]
src/BRepMesh/BRepMesh_BiPoint.lxx [deleted file]
src/BRepMesh/BRepMesh_Classifier.cdl [deleted file]
src/BRepMesh/BRepMesh_Classifier.cxx
src/BRepMesh/BRepMesh_Classifier.hxx [new file with mode: 0644]
src/BRepMesh/BRepMesh_Classifier.lxx [deleted file]
src/BRepMesh/BRepMesh_ClassifierPtr.hxx
src/BRepMesh/BRepMesh_Delaun.cxx
src/BRepMesh/BRepMesh_Delaun.hxx
src/BRepMesh/BRepMesh_FastDiscret.cdl
src/BRepMesh/BRepMesh_FastDiscret.cxx
src/BRepMesh/BRepMesh_FastDiscretFace.cxx
src/BRepMesh/BRepMesh_IncrementalMesh.cxx
src/BRepMesh/BRepMesh_WireChecker.cxx [new file with mode: 0644]
src/BRepMesh/BRepMesh_WireChecker.hxx [new file with mode: 0644]
src/BRepMesh/BRepMesh_WireInterferenceChecker.cxx [new file with mode: 0644]
src/BRepMesh/BRepMesh_WireInterferenceChecker.hxx [new file with mode: 0644]
src/BRepMesh/FILES
src/NCollection/NCollection_EBTree.hxx
tests/bugs/mesh/bug24968_1 [new file with mode: 0644]
tests/bugs/mesh/bug24968_2 [new file with mode: 0644]
tests/bugs/mesh/data/bug22778_square.brep [deleted file]
tests/mesh/data/standard/B5
tests/mesh/data/standard/C7
tests/mesh/data/standard/U7
tests/mesh/data/standard/W4
tests/mesh/data/standard/W9