| 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 | 
  | 
  | 
} |