puts "========" puts "OCC28641" puts "========" puts "" #################################################### # Data Exchange - Support alpha-channel of color #################################################### pload OCAF # Create document with View NewDocument D_First BinXCAF box b 1 1 1 explode b e explode b f XAddShape D_First b XSetColor D_First b_1 1 0 0 s XSetColor D_First b_2 1 1 0 0.3 s XSetColor D_First b_11 1 1 1 0.2 c XSetColor D_First b_10 0 1 1 c XAddColor D_First 0.5 0.5 1 0.1 XShow D_First vfit vsetdispmode 1 vdump $::imagedir/${::casename}_first.png if { [vreadpixel 300 200 rgb name] != "DARKKHAKI" } { puts "Error: wrong color in 3D Viewer" } # Write file SaveAs D_First ${imagedir}/bug28521.xbf Close D_First # Read document XOpen ${imagedir}/bug28521.xbf D_Second # Results validation set isOK 1 set color "" set alpha "" set prec 1e-7 #0:1:2:1 set res [XGetColor D_Second 0:1:2:1] if {$res != "RED"} { set isOK 0 } #0:1:2:2 set res [XGetColor D_Second 0:1:2:2] regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha if {$color != "YELLOW"} { set isOK 0 } if {[expr abs(0.3 - $alpha)] > $prec} { set isOK 0 } #0:1:2:3 set res [XGetColor D_Second 0:1:2:3] regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha if {$color != "WHITE"} { set isOK 0 } if {[expr abs(0.2 - $alpha)] > $prec} { set isOK 0 } #0:1:2:4 set res [XGetColor D_Second 0:1:2:4] if {$res != "CYAN"} { set isOK 0 } #0:1:2:5 set res [XGetColor D_Second 0:1:2:5] regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha if {$color != "LIGHTSLATEBLUE"} { set isOK 0 } if {[expr abs(0.1 - $alpha)] > $prec} { set isOK 0 } if {$isOK == 0} { puts "Error: wrong color." } XShow D_Second vfit vsetdispmode 1 vdump $::imagedir/${::casename}.png if { [vreadpixel 300 200 rgb name] != "DARKKHAKI" } { puts "Error: wrong color in 3D Viewer" } Close D_Second