puts "0028404: DRAW is slow" # Test performance of code generating deep nested compound # involving simple shape (box) around 93 K times pload MODELING # replicate shape nb times, adding rotation and translation to each copy # (except first) proc replicate {result shape nb cx cy cz rx ry rz angle tx ty tz} { upvar $result res upvar $shape s copy s a0 set ll a0 for {set i 1} {$i < $nb} {incr i} { copy "a[expr $i - 1]" a$i trotate a$i $cx $cy $cz $rx $ry $rz $angle ttranslate a$i $tx $ty $tz lappend ll a$i } eval compound $ll res return $result } # switch off autodisplay of shapes autodisplay 0 chrono s restart box b 10 10 10 replicate r1 b 12 0 0 0 0 0 1 30 15 20 3 replicate r2 r1 36 50 -50 0 1 1 0 10 0 0 0 replicate r3 r2 18 250 250 0 1 -1 0 20 100 100 20 replicate r4 r3 12 -300 -300 0 0 0 1 30 300 300 0 chrono s stop counter "huge compound generation CPU" # return autodisplay autodisplay 1