1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

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
This commit is contained in:
abv 2013-10-17 12:28:37 +04:00 committed by bugmaster
parent 199416879d
commit 2bc5e8f1e0
2 changed files with 68 additions and 0 deletions

View 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

64
tests/bugs/modalg_5/bug24244 Executable file
View File

@ -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