--- ray/src/util/do_file.tcl 1996/05/17 13:53:07 2.13 +++ ray/src/util/do_file.tcl 2015/05/28 10:23:06 2.21 @@ -1,12 +1,12 @@ -# SCCSid "$SunId$ LBL" +# RCSid: $Id: do_file.tcl,v 2.21 2015/05/28 10:23:06 greg Exp $ # # Choose the Rad Input File to work on. # proc preen {} { # clean up radvar global radvar rifname - foreach n {objects scene materials illum mkillum render oconv pfilt - RAWFILE ZFILE AMBFILE OPTFILE EXPOSURE ZONE REPORT} { + foreach n {objects scene materials illum mkillum mkpmap render oconv rvu rpict pfilt + RAWFILE ZFILE AMBFILE PGMAP PCMAP OPTFILE EXPOSURE ZONE REPORT} { if {! [info exists radvar($n)]} { set radvar($n) {} } @@ -43,6 +43,9 @@ proc preen {} { # clean up radvar if {! [info exists radvar(RESOLUTION)]} { set radvar(RESOLUTION) 512 } + if {! [info exists radvar(EYESEP)]} { + set radvar(EYESEP) 1 + } if [info exists radvar(QUALITY)] { cardval radvar(QUALITY) {High Medium Low} } else { @@ -73,15 +76,18 @@ proc preen {} { # clean up radvar proc setradvar stmt { # assign a rad variable global radvar - regexp {^([a-zA-Z][a-zA-Z0-9]*) *= *(.*)$} $stmt dummy vnam vval + regexp {^([a-zA-Z][a-zA-Z0-9]*) *=[ ]*(.*)$} $stmt dummy vnam vval switch -glob $vnam { obj* { eval lappend radvar(objects) $vval } sce* { eval lappend radvar(scene) $vval } mat* { eval lappend radvar(materials) $vval } ill* { eval lappend radvar(illum) $vval } mki* { eval lappend radvar(mkillum) $vval } + mkp* { eval lappend radvar(mkpmap) $vval } ren* { eval lappend radvar(render) $vval } oco* { eval lappend radvar(oconv) $vval } + rvu { eval lappend radvar(rvu) $vval } + rpi* { eval lappend radvar(rpict) $vval } pf* { eval lappend radvar(pfilt) $vval } vi* { lappend radvar(view) $vval } ZO* { set radvar(ZONE) $vval } @@ -91,6 +97,7 @@ proc setradvar stmt { # assign a rad variable AMB* { set radvar(AMBFILE) $vval } OPT* { set radvar(OPTFILE) $vval } EXP* { set radvar(EXPOSURE) $vval } + EYE* { set radvar(EYESEP) $vval } RES* { set radvar(RESOLUTION) $vval } UP { set radvar(UP) $vval } IND* { set radvar(INDIRECT) $vval } @@ -100,6 +107,8 @@ proc setradvar stmt { # assign a rad variable REP* { set radvar(REPORT) $vval } RAW* { set radvar(RAWFILE) $vval } ZF* {set radvar(ZFILE) $vval } + PGM* {set radvar(PGMAP) $vval } + PCM* {set radvar(PCMAP) $vval } } } @@ -119,7 +128,7 @@ proc putradvar {fi vn} { # print out a rad variable } if {[lsearch -exact {ZONE QUALITY OCTREE PICTURE AMBFILE OPTFILE EXPOSURE RESOLUTION UP INDIRECT DETAIL PENUMBRAS - RAWFILE ZFILE VARIABILITY REPORT} $vn] >= 0} { + EYESEP RAWFILE ZFILE VARIABILITY REPORT} $vn] >= 0} { puts $fi "$vn= $radvar($vn)" return } @@ -149,16 +158,16 @@ proc load_vars {f {vl all}} { # load RIF variables if {"$vl" == "all" && ! [chksave]} {return 0} set curmess {Please wait...} update - if [catch {exec rad -n -w -e $f >& /usr/tmp/ro[pid]}] { - set curmess [exec cat /usr/tmp/ro[pid]] - exec rm -f /usr/tmp/ro[pid] + if [catch {exec rad -n -w -e $f >& /tmp/ro[pid]}] { + set curmess [exec cat /tmp/ro[pid]] + exec rm -f /tmp/ro[pid] return 0 } - set fi [open /usr/tmp/ro[pid] r] + set fi [open /tmp/ro[pid] r] if {"$vl" == "all"} { catch {unset radvar} while {[gets $fi curli] != -1} { - if [regexp {^[a-zA-Z][a-zA-Z0-9]*= } $curli] { + if [regexp {^[a-zA-Z][a-zA-Z0-9]* *=} $curli] { setradvar $curli } else { break @@ -167,7 +176,11 @@ proc load_vars {f {vl all}} { # load RIF variables set curmess {Project loaded.} } else { foreach n $vl { - catch {unset radvar($n)} + if [regexp {[a-z][a-z]*} $n] { + set radvar($n) {} + } else { + catch {unset radvar($n)} + } } while {[gets $fi curli] != -1} { if [regexp {^[a-zA-Z][a-zA-Z0-9]* *=} $curli] { @@ -183,7 +196,7 @@ proc load_vars {f {vl all}} { # load RIF variables } set alldone [eof $fi] close $fi - exec rm -f /usr/tmp/ro[pid] + exec rm -f /tmp/ro[pid] preen return 1 }