puts "============" puts "OCC24623_3" 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" in removing # Select3D_BVHPrimitiveContent ####################################################################### puts "" pload MODELING VISUALIZATION psphere s 0.5 tclean s incmesh s 0.001 trinfo s set aMemInit [meminfo h] set aNb 1000 # display as copies eval compound [lrepeat $aNb s] ss explode ss for {set i 1} {$i <= $aNb} {incr i} { vloadselection ss_${i}; vsetlocation -noupdate ss_${i} ${i} 0 0 } vfit set aMemSel1 [meminfo h] vclear set aMemClear1 [meminfo h] # display as connected instances of single presentation 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} } set aMemSel2 [meminfo h] vclear set aMemClear2 [meminfo h] puts "Initial memory : [expr $aMemInit / (1024 * 1024)] MiB" puts "Compute selection (simple) : [expr $aMemSel1 / (1024 * 1024)] MiB" puts "Clearing (simple) : [expr $aMemClear1 / (1024 * 1024)] MiB" puts "Compute selection (connected): [expr $aMemSel2 / (1024 * 1024)] MiB" puts "Clearing (connected) : [expr $aMemClear2 / (1024 * 1024)] MiB" set aRatio [expr $aMemClear2 / double($aMemClear1)] # check if the memory difference is greater than 10% if {[expr $aRatio > 1.1]} { puts "Error : TEST FAILED" }