From 2bc5e8f1e0e601fcd00b69fee26ab8d2f30e603b Mon Sep 17 00:00:00 2001 From: abv Date: Thu, 17 Oct 2013 12:28:37 +0400 Subject: [PATCH] 0024244: Command bclear in DRAW does not clear all the data required for BOP re-initialization In BOPTest_Objects::Clear() added clearing of the objects and tools of the operation. Test cases for issue CR24244 --- src/BOPTest/BOPTest_Objects.cxx | 4 +++ tests/bugs/modalg_5/bug24244 | 64 +++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100755 tests/bugs/modalg_5/bug24244 diff --git a/src/BOPTest/BOPTest_Objects.cxx b/src/BOPTest/BOPTest_Objects.cxx index 58eb8055a5..46a8779dee 100644 --- a/src/BOPTest/BOPTest_Objects.cxx +++ b/src/BOPTest/BOPTest_Objects.cxx @@ -125,6 +125,10 @@ void BOPTest_Objects::Init() void BOPTest_Objects::Clear() { GetSession().Clear(); + // + //clear objects and tools + Shapes().Clear(); + Tools().Clear(); } //======================================================================= //function : PaveFiller diff --git a/tests/bugs/modalg_5/bug24244 b/tests/bugs/modalg_5/bug24244 new file mode 100755 index 0000000000..adf1620491 --- /dev/null +++ b/tests/bugs/modalg_5/bug24244 @@ -0,0 +1,64 @@ +puts "=========" +puts "OCC24244" +puts "=========" +puts "" +########################################################### +# Command bclear in DRAW does not clear all the data required for BOP re-initialization +########################################################### + +vinit View1 + +proc bclear_proc {} { +brestore [locate_data_file bug24244_ShellExternalHull.brep] hull + +# box encompassing all objects +box over -11 -15 -1 220 30 22 + +# two simplified decks +box b -10 -14 10 210 28 5 +explode b f +renamevar b_5 deck1 +renamevar b_6 deck2 + +# two simplified transverse bulkheads in the middle +box b 50 -14 -0.5 40 28 20 +explode b f +renamevar b_1 bhd1 +renamevar b_2 bhd2 + +# two simplified transverse bulkheads in the fore +box b 180 -14 -0.5 10 28 20 +explode b f +renamevar b_1 bhd3 +renamevar b_2 bhd4 + +# fill BOP data structures +bclear +baddobjects over hull deck1 deck2 bhd1 bhd2 bhd3 bhd4 +bfillds +bbuild result + +# check validity +puts [checkshape result] + +# show compartments (solids) in shading with different colors +set compartments [explode result so] +set icol 0 +set colors {red green blue1 magenta1 yellow cyan1 brown} +foreach s [lrange $compartments 1 end] { + vdisplay $s + vsetcolor $s [lindex $colors [expr [incr icol] % [llength $colors]]] + vsetdispmode $s 1 + vsetmaterial $s plastic +} + +# show all elements in wireframe +vdisplay result +vsetdispmode result 0 +vfit +} + +bclear_proc +bclear_proc + +set only_screen 1 -- 2.20.1