0028641: Data Exchange - Support alpha-channel of color
[occt.git] / tests / bugs / xde / bug28641
1 puts "========"
2 puts "OCC28641"
3 puts "========"
4 puts ""
5 ####################################################
6 # Data Exchange - Support alpha-channel of color
7 ####################################################
8
9 pload OCAF
10
11 # Create document with View
12 NewDocument D_First BinXCAF
13 box b 1 1 1
14 explode b e
15 explode b f
16 XAddShape D_First b
17 XSetColor D_First b_1 1 0 0 s
18 XSetColor D_First b_2 1 1 0 0.3 s
19 XSetColor D_First b_11 1 1 1 0.2 c
20 XSetColor D_First b_10 0 1 1 c
21 XAddColor D_First 0.5 0.5 1 0.1
22
23 # Write file
24 SaveAs D_First ${imagedir}/bug28521.xbf
25 Close D_First
26 # Read document
27 XOpen ${imagedir}/bug28521.xbf D_Second
28
29 # Results validation
30 set isOK 1
31 set color ""
32 set alpha ""
33 set prec 1e-7
34 #0:1:2:1
35 set res [XGetColor D_Second 0:1:2:1]
36 if {$res != "RED"} {
37   set isOK 0
38 }
39 #0:1:2:2
40 set res [XGetColor D_Second 0:1:2:2]
41 regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha
42 if {$color != "YELLOW"} {
43   set isOK 0
44 }
45 if {[expr abs(0.3 - $alpha)] > $prec} {
46   set isOK 0
47 }
48 #0:1:2:3
49 set res [XGetColor D_Second 0:1:2:3]
50 regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha
51 if {$color != "WHITE"} {
52   set isOK 0
53 }
54 if {[expr abs(0.2 - $alpha)] > $prec} {
55   set isOK 0
56 }
57 #0:1:2:4
58 set res [XGetColor D_Second 0:1:2:4]
59 if {$res != "CYAN1"} {
60   set isOK 0
61 }
62 #0:1:2:5
63 set res [XGetColor D_Second 0:1:2:5]
64 regexp {([A-Z0-9]+) \(([0-9.+eE]+)\)} $res full color alpha
65 if {$color != "LIGHTSLATEBLUE"} {
66   set isOK 0
67 }
68 if {[expr abs(0.1 - $alpha)] > $prec} {
69   set isOK 0
70 }
71
72 if {$isOK == 0} {
73   puts "Error: wrong color."
74 }
75
76 Close D_Second