1 |
greg |
2.10 |
# RCSid: $Id: do_options.tcl,v 2.9 2014/08/01 02:18:42 greg Exp $ |
2 |
greg |
2.1 |
# |
3 |
|
|
# Options screen for trad |
4 |
|
|
# |
5 |
|
|
|
6 |
|
|
proc amb_delete {} { # delete ambient file |
7 |
|
|
global radvar curmess |
8 |
greg |
2.6 |
if {"$radvar(AMBFILE)" == {} || ! [file isfile $radvar(AMBFILE)]} { |
9 |
greg |
2.1 |
set curmess {No ambient file.} |
10 |
|
|
return |
11 |
|
|
} |
12 |
|
|
set hl [string length [exec getinfo < $radvar(AMBFILE)]] |
13 |
|
|
set fl [file size $radvar(AMBFILE)] |
14 |
greg |
2.9 |
set nv [expr ($fl - $hl - 2) / 67] |
15 |
greg |
2.10 |
if {$nv > 1000 && [tk_dialog .dlg {Verification} \ |
16 |
greg |
2.1 |
"Really delete ambient file $radvar(AMBFILE)\ |
17 |
greg |
2.3 |
with $nv indirect irradiance values?" \ |
18 |
greg |
2.5 |
questhead 0 {Delete} {Cancel}]} { |
19 |
greg |
2.1 |
return 0 |
20 |
|
|
} |
21 |
|
|
if [catch {exec rm $radvar(AMBFILE) < /dev/null} curmess] {return 0} |
22 |
|
|
set curmess {Ambient file deleted.} |
23 |
|
|
return 1 |
24 |
|
|
} |
25 |
|
|
|
26 |
greg |
2.10 |
proc pgm_delete {} { # delete global photon map file |
27 |
|
|
global radvar curmess |
28 |
|
|
set pm [lindex $radvar(PGMAP) 0] |
29 |
|
|
if {"$pm" == {} || ! [file isfile $pm]} { |
30 |
|
|
set curmess {No global photon file.} |
31 |
|
|
return |
32 |
|
|
} |
33 |
|
|
set hd [exec getinfo < $pm] |
34 |
|
|
set nv [lindex $hd [expr [lsearch $hd photons] - 1]] |
35 |
|
|
if {$nv > 10000 && [tk_dialog .dlg {Verification} \ |
36 |
|
|
"Really delete global photon map $pm\ |
37 |
|
|
with $nv photons?" \ |
38 |
|
|
questhead 0 {Delete} {Cancel}]} { |
39 |
|
|
return 0 |
40 |
|
|
} |
41 |
|
|
if [catch {exec rm $pm < /dev/null} curmess] {return 0} |
42 |
|
|
set curmess {Global photon file deleted.} |
43 |
|
|
return 1 |
44 |
|
|
} |
45 |
|
|
|
46 |
|
|
proc pcm_delete {} { # delete caustic photon map file |
47 |
|
|
global radvar curmess |
48 |
|
|
set pm [lindex $radvar(PCMAP) 0] |
49 |
|
|
if {"$pm" == {} || ! [file isfile $pm]} { |
50 |
|
|
set curmess {No caustic photon file.} |
51 |
|
|
return |
52 |
|
|
} |
53 |
|
|
set hd [exec getinfo < $pm] |
54 |
|
|
set nv [lindex $hd [expr [lsearch $hd photons] - 1]] |
55 |
|
|
if {$nv > 10000 && [tk_dialog .dlg {Verification} \ |
56 |
|
|
"Really delete caustic photon map $pm\ |
57 |
|
|
with $nv photons?" \ |
58 |
|
|
questhead 0 {Delete} {Cancel}]} { |
59 |
|
|
return 0 |
60 |
|
|
} |
61 |
|
|
if [catch {exec rm $pm < /dev/null} curmess] {return 0} |
62 |
|
|
set curmess {Caustic photon file deleted.} |
63 |
|
|
return 1 |
64 |
|
|
} |
65 |
|
|
|
66 |
greg |
2.1 |
proc copyopts rf { # copy option settings from another RIF |
67 |
greg |
2.10 |
load_vars [file tail $rf] {QUALITY PENUMBRAS AMBFILE PGMAP PCMAP OPTFILE REPORT \ |
68 |
|
|
oconv mkillum mkpmap render pfilt} |
69 |
greg |
2.1 |
} |
70 |
|
|
|
71 |
|
|
proc do_options w { # Set up options screen |
72 |
|
|
global radvar rifname |
73 |
|
|
if {"$w" == "done"} { |
74 |
|
|
return |
75 |
|
|
} |
76 |
|
|
frame $w |
77 |
|
|
# Quality |
78 |
|
|
label $w.qual -text Quality: |
79 |
greg |
2.10 |
place $w.qual -relx .0714 -rely .0510 |
80 |
greg |
2.1 |
radiobutton $w.quaH -text High -anchor w -relief flat \ |
81 |
|
|
-variable radvar(QUALITY) -value High |
82 |
greg |
2.10 |
place $w.quaH -relx .2857 -rely .0510 |
83 |
greg |
2.1 |
radiobutton $w.quaM -text Medium -anchor w -relief flat \ |
84 |
|
|
-variable radvar(QUALITY) -value Medium |
85 |
greg |
2.10 |
place $w.quaM -relx .5357 -rely .0510 |
86 |
greg |
2.1 |
radiobutton $w.quaL -text Low -anchor w -relief flat \ |
87 |
|
|
-variable radvar(QUALITY) -value Low |
88 |
greg |
2.10 |
place $w.quaL -relx .7857 -rely .0510 |
89 |
greg |
2.1 |
helplink "$w.quaH $w.quaM $w.quaL" trad options quality |
90 |
|
|
# Penumbras |
91 |
|
|
label $w.penl -text Penumbras: |
92 |
greg |
2.10 |
place $w.penl -relx .0714 -rely .1485 |
93 |
greg |
2.1 |
radiobutton $w.penT -text On -anchor w -relief flat \ |
94 |
|
|
-variable radvar(PENUMBRAS) -value True |
95 |
greg |
2.10 |
place $w.penT -relx .2857 -rely .1485 |
96 |
greg |
2.1 |
radiobutton $w.penF -text Off -anchor w -relief flat \ |
97 |
|
|
-variable radvar(PENUMBRAS) -value False |
98 |
greg |
2.10 |
place $w.penF -relx .5357 -rely .1485 |
99 |
greg |
2.1 |
helplink "$w.penT $w.penF" trad options penumbras |
100 |
greg |
2.10 |
# Global photon map |
101 |
|
|
label $w.pgml -text Pgmap: |
102 |
|
|
place $w.pgml -relx .0714 -rely .2460 |
103 |
|
|
entry $w.pgme -textvariable radvar(PGMAP) -relief sunken |
104 |
|
|
place $w.pgme -relwidth .5714 -relheight .0610 -relx .2857 -rely .2460 |
105 |
|
|
helplink $w.pgme trad options pgmap |
106 |
|
|
button $w.pgmd -text Delete -relief raised -command pgm_delete |
107 |
|
|
place $w.pgmd -relwidth .1071 -relheight .0610 -relx .98 -rely .2460 \ |
108 |
|
|
-anchor ne |
109 |
|
|
helplink $w.pgmd trad options pgmdelete |
110 |
|
|
# Caustic photon map |
111 |
|
|
label $w.pcml -text Pcmap: |
112 |
|
|
place $w.pcml -relx .0714 -rely .3341 |
113 |
|
|
entry $w.pcme -textvariable radvar(PCMAP) -relief sunken |
114 |
|
|
place $w.pcme -relwidth .5714 -relheight .0610 -relx .2857 -rely .3341 |
115 |
|
|
helplink $w.pcme trad options pcmap |
116 |
|
|
button $w.pcmd -text Delete -relief raised -command pcm_delete |
117 |
|
|
place $w.pcmd -relwidth .1071 -relheight .0610 -relx .98 -rely .3341 \ |
118 |
|
|
-anchor ne |
119 |
|
|
helplink $w.pcmd trad options pcmdelete |
120 |
greg |
2.1 |
# Ambfile |
121 |
|
|
label $w.ambl -text Ambfile: |
122 |
greg |
2.10 |
place $w.ambl -relx .0714 -rely .4222 |
123 |
greg |
2.1 |
entry $w.ambe -textvariable radvar(AMBFILE) -relief sunken |
124 |
greg |
2.10 |
place $w.ambe -relwidth .5714 -relheight .0610 -relx .2857 -rely .4222 |
125 |
greg |
2.1 |
helplink $w.ambe trad options ambfile |
126 |
|
|
button $w.ambd -text Delete -relief raised -command amb_delete |
127 |
greg |
2.10 |
place $w.ambd -relwidth .1071 -relheight .0610 -relx .98 -rely .4222 \ |
128 |
greg |
2.1 |
-anchor ne |
129 |
|
|
helplink $w.ambd trad options ambdelete |
130 |
|
|
# Optfile |
131 |
|
|
label $w.optl -text Optfile: |
132 |
greg |
2.10 |
place $w.optl -relx .0714 -rely .5103 |
133 |
greg |
2.1 |
entry $w.opte -textvariable radvar(OPTFILE) -relief sunken |
134 |
greg |
2.10 |
place $w.opte -relwidth .5714 -relheight .0610 -relx .2857 -rely .5103 |
135 |
greg |
2.1 |
helplink $w.opte trad options optfile |
136 |
|
|
# Report |
137 |
|
|
label $w.repl -text Report: |
138 |
greg |
2.10 |
place $w.repl -relx .0714 -rely .5984 |
139 |
greg |
2.1 |
entry $w.repe -textvariable radvar(REPORT) -relief sunken |
140 |
greg |
2.10 |
place $w.repe -relwidth .5714 -relheight .0610 -relx .2857 -rely .5984 |
141 |
greg |
2.1 |
helplink $w.repe trad options report |
142 |
|
|
# Oconv options |
143 |
|
|
label $w.ocol -text "oconv opts:" |
144 |
greg |
2.10 |
place $w.ocol -relx .0714 -rely .6863 |
145 |
greg |
2.1 |
entry $w.ocoe -textvariable radvar(oconv) -relief sunken |
146 |
greg |
2.10 |
place $w.ocoe -relwidth .5714 -relheight .0600 -relx .2857 -rely .6863 |
147 |
greg |
2.1 |
helplink $w.ocoe trad options oconv |
148 |
|
|
# Mkillum options |
149 |
|
|
label $w.mkil -text "mkillum opts:" |
150 |
greg |
2.10 |
place $w.mkil -relx .0714 -rely .7473 |
151 |
greg |
2.1 |
entry $w.mkie -textvariable radvar(mkillum) -relief sunken |
152 |
greg |
2.10 |
place $w.mkie -relwidth .5714 -relheight .0600 -relx .2857 -rely .7473 |
153 |
greg |
2.1 |
helplink $w.mkie trad options mkillum |
154 |
greg |
2.10 |
# Mkpmap options |
155 |
|
|
label $w.mkpl -text "mkpmap opts:" |
156 |
|
|
place $w.mkpl -relx .0714 -rely .8083 |
157 |
|
|
entry $w.mkpe -textvariable radvar(mkpmap) -relief sunken |
158 |
|
|
place $w.mkpe -relwidth .5714 -relheight .0600 -relx .2857 -rely .8083 |
159 |
|
|
helplink $w.mkpe trad options mkpmap |
160 |
greg |
2.1 |
# Render options |
161 |
|
|
label $w.renl -text "render opts:" |
162 |
greg |
2.10 |
place $w.renl -relx .0714 -rely .8693 |
163 |
greg |
2.1 |
entry $w.rene -textvariable radvar(render) -relief sunken |
164 |
greg |
2.10 |
place $w.rene -relwidth .5714 -relheight .0600 -relx .2857 -rely .8693 |
165 |
greg |
2.1 |
helplink $w.rene trad options render |
166 |
|
|
# Pfilt options |
167 |
|
|
label $w.pfil -text "pfilt opts:" |
168 |
greg |
2.10 |
place $w.pfil -relx .0714 -rely .9339 |
169 |
greg |
2.1 |
entry $w.pfie -textvariable radvar(pfilt) -relief sunken |
170 |
greg |
2.10 |
place $w.pfie -relwidth .5714 -relheight .0600 -relx .2857 -rely .9339 |
171 |
greg |
2.1 |
helplink $w.pfie trad options pfilt |
172 |
|
|
# Revert and Copy buttons |
173 |
|
|
button $w.revert -text Revert -relief raised \ |
174 |
|
|
-command "copyopts $rifname" |
175 |
|
|
place $w.revert -relwidth .1071 -relheight .0610 -relx .98 -rely .98 \ |
176 |
|
|
-anchor se |
177 |
|
|
helplink $w.revert trad options revert |
178 |
greg |
2.2 |
button $w.copy -text Copy -relief raised -command {getfile -grab \ |
179 |
greg |
2.7 |
-send copyopts -view view_txt -glob $myglob(rif)} |
180 |
greg |
2.1 |
place $w.copy -relwidth .1071 -relheight .0610 -relx .98 -rely .90 \ |
181 |
|
|
-anchor se |
182 |
|
|
helplink $w.copy trad options copy |
183 |
|
|
# Set focus |
184 |
|
|
focus $w.ambe |
185 |
|
|
bind $w.ambe <Return> "focus $w.opte" |
186 |
|
|
bind $w.opte <Return> "focus $w.repe" |
187 |
|
|
bind $w.repe <Return> "focus $w.ocoe" |
188 |
|
|
bind $w.ocoe <Return> "focus $w.mkie" |
189 |
|
|
bind $w.mkie <Return> "focus $w.rene" |
190 |
|
|
bind $w.rene <Return> "focus $w.pfie" |
191 |
|
|
bind $w.pfie <Return> {} |
192 |
|
|
} |