1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00
occt/tests/bugs/vis/bug24623_4
vpa f751596e46 0024623: Visualization - improve selection mechanism
Redesign of selection mechanism:
- implemented 3-level BVH tree for selection;
- selection now calculates in 3D space;
- intersection tests were moved to SelectMgr_BaseFrustum descendants;
- removed .cdl files in Select3D and .cdl related to selection in MeshVS;
- SelectMgr_ViewerSelectors are now shared between local and global contexts;
- transformations of sensitive entities are now stored in SelectMgr_SelectableObject only. Sensitive entities are independent from transformations, it is applied to SelectMgr_SelectingVolumeManager instance only;
- connected and multiple connected interactive objects are now represented by their child objects only for SelectMgr_SelectionManager;
- if interactive object has child objects, they will be stored as separate objects in SelectMgr_SelectionManager now.
- test cases bugs/vis/bug24623_1, bug24623_2, bug24623_3, bug24623_4 to test performance and memory issues.
2015-04-06 17:27:38 +03:00

44 lines
1.2 KiB
Plaintext

puts "============"
puts "OCC24623_4"
puts "============"
puts ""
#######################################################################
puts "Visualization - improve selection mechanism"
# tests memory leaks in creation of selection primitives for connected
# interactive objects: checks that there is no "dead links" to reference
# interactives after its clearing
#######################################################################
puts ""
pload MODELING VISUALIZATION
psphere s 0.5
tclean s
incmesh s 0.001
trinfo s
vinit
vclear
set aMemInit [meminfo h]
set anIterNb 100
for {set anIterCount 0} {$anIterCount < $anIterNb} {incr anIterCount} {
set aNb 11
vconnectto i_1 0 0 0 s -nodisplay
vloadselection i_1
for {set i 2} {$i < $aNb} {incr i} { vconnectto i_${i} ${i} 0 0 i_1 -nodisplay; vloadselection i_${i} }
vclear
}
set aMemClear [meminfo h]
puts "Initial memory : [expr $aMemInit / (1024 * 1024)] MiB"
puts "Clearing : [expr $aMemClear / (1024 * 1024)] MiB"
set aRatio [expr $aMemClear / double($aMemInit)]
# check if the memory difference is greater than 20%
if {[expr $aRatio > 1.2]} {
puts "Error : TEST FAILED"
}