0024244: Command bclear in DRAW does not clear all the data required for BOP re-initi...
authorabv <abv@opencascade.com>
Thu, 17 Oct 2013 08:28:37 +0000 (12:28 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 17 Oct 2013 08:29:37 +0000 (12:29 +0400)
In BOPTest_Objects::Clear() added clearing of the objects and tools of the operation.

Test cases for issue CR24244

src/BOPTest/BOPTest_Objects.cxx
tests/bugs/modalg_5/bug24244 [new file with mode: 0755]

index 58eb805..46a8779 100644 (file)
@@ -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 (executable)
index 0000000..adf1620
--- /dev/null
@@ -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