puts "============" puts "OCC25265" puts "============" puts "" #################################################################################### # Perspective projection - selecting front point of two. # When trying to select front point of two (lying on Z-coordinate) in a perspective # view, the back one is snapped and selected. #################################################################################### set select_x 204 set select_y 204 vinit View1 vsetdispmode 1 vcamera -persp # Draw grid of points 7x7. set j 0 for {set x 0} {$x<7} {incr x} { for {set y 0} {$y<7} {incr y} { vpoint $j $x $y 10 incr j } } for {set x 0} {$x<7} {incr x} { for {set y 0} {$y<7} {incr y} { vpoint $j $x $y 0 incr j } } # Prepare view. vtop vfit vselect $select_x $select_y set stat 0 set result [vstate] set newlist {} set ref_selected {24} set asplit [split $result "\n"] for {set i 0} {$i < [llength $ref_selected]} {incr i} { lappend newlist [lindex [lindex $asplit $i] 0] } set newsorted [lsort $newlist] set refsorted [lsort $ref_selected] for {set i 0} {$i < [llength $refsorted]} {incr i} { if {[lindex $refsorted $i] != [lindex $newsorted $i]} { set stat 1 break } } if {$stat == 1} { puts "Error : Perspective selection is broken." } # Dump view. set scale 48.20 set up_x -0.09 set up_y 0.94 set up_z -0.33 set at_x 3.03 set at_y 2.70 set at_z 5.10 set eye_x 16.40 set eye_y 10.98 set eye_z 24.59 vviewparams -scale $scale -up $up_x $up_y $up_z -at $at_x $at_y $at_z -eye $eye_x $eye_y $eye_z set only_screen 1