mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
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
46 lines
881 B
Plaintext
46 lines
881 B
Plaintext
puts "=========="
|
|
puts "OCC24968"
|
|
puts "=========="
|
|
puts ""
|
|
#####################################
|
|
# Impove BRepMesh_Classifier to cope with intersection of huge number of wires
|
|
#####################################
|
|
|
|
restore [locate_data_file bug24968_Shape_1.brep] result
|
|
|
|
tclean result
|
|
dchrono h reset
|
|
dchrono h start
|
|
incmesh result 0.1 1
|
|
dchrono h stop
|
|
|
|
set info [dchrono h show]
|
|
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${info} full cpu_time
|
|
|
|
if { [regexp {Debug mode} [dversion]] } {
|
|
if { [regexp {Windows} [dversion]] } {
|
|
set max_time 100
|
|
} else {
|
|
set max_time 250
|
|
}
|
|
} else {
|
|
if { [regexp {Windows} [dversion]] } {
|
|
set max_time 100
|
|
} else {
|
|
set max_time 250
|
|
}
|
|
}
|
|
|
|
if { ${cpu_time} > ${max_time} } {
|
|
puts "Error : meshing is slow"
|
|
} else {
|
|
puts "OK: meshing is quite fast"
|
|
}
|
|
|
|
vinit
|
|
vdisplay result
|
|
vfit
|
|
vsetdispmode 1
|
|
|
|
set only_screen 1
|