ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/optics2rad.pl
Revision: 1.1
Committed: Wed Nov 20 18:23:02 2013 UTC (10 years, 5 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad4R2, rad4R2P1, rad5R3, HEAD
Log Message:
Converted C-shell script (needs further testing)

File Contents

# User Rev Content
1 greg 1.1 #!/usr/bin/perl -w
2     # RCSid $Id$
3     #
4     # Convert Optics 5 output to correct Radiance input
5     #
6     use strict;
7     my $windoz = ($^O eq "MSWin32" or $^O eq "MSWin64");
8     if ($#ARGV < 0) {
9     print STDERR "Usage: optics2rad optics.mat ..\n";
10     exit 1;
11     }
12     my $optf =
13     q[void glass $(name)_glass] . "\n0\n0\n3 " .
14     q[${Rtn} ${Gtn} ${Btn}] . "\n\n" .
15     q[void BRTDfunc $(name)_front] . "\n10\n" .
16     q[ ${fRrho} ${fGrho} ${fBrho}] . "\n" .
17     q[ ${Rtau} ${Gtau} ${Btau}] . "\n" .
18     " 0 0 0\n .\n0\n9 0 0 0 0 0 0 0 0 0\n\n" .
19     q[void BRTDfunc $(name)_back] . "\n10\n" .
20     q[${bRrho} ${bGrho} ${bBrho}] . "\n" .
21     q[${Rtau} ${Gtau} ${Btau}] . "\n" .
22     " 0 0 0\n .\n0\n9 0 0 0 0 0 0 0 0 0\n" ;
23    
24     print "# Output generated by optics2rad from @ARGV\n";
25     if (! $windoz ) {
26     system q{sed -e '/^[^#]/d' -e '/^$/d' } . "@ARGV" ;
27     }
28     my $outf =
29     q[void glass $(name)] . "\n0\n0\n" .
30     q[3 ${Rtn} ${Gtn} ${Btn}] . "\n\n" ;
31    
32     if ($windoz) {
33     system "rcalc -l -e \"abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)\" " .
34     "-e \"lum(r,g,b):.265*r+.670*g+.065*b\" " .
35     "-e \"trans=lum(Rtau,Gtau,Btau)\" " .
36     "-e \"rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)\" " .
37     "-e \"cond=0.005-abs(rfront-rback)\" " .
38     "-i \"$optf\" -o \"$outf\" @ARGV" ;
39     } else {
40     system "rcalc -l -e 'abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)' " .
41     "-e 'lum(r,g,b):.265*r+.670*g+.065*b' " .
42     "-e 'trans=lum(Rtau,Gtau,Btau)' " .
43     "-e 'rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)' " .
44     "-e 'cond=0.005-abs(rfront-rback)' " .
45     "-i '$optf' -o '$outf' @ARGV" ;
46     }
47     $outf =
48     q[void BRTDfunc $(name)] . "\n" .
49     q[10 rR_clear rG_clear rB_clear] . "\n" .
50     q[${Rtau}*tR_clear ${Gtau}*tG_clear ${Btau}*tB_clear] .
51     "\n0 0 0 window.cal\n0\n" .
52     "15 0 0 0 0 0 0 0 0 0\n" .
53     q[${fRrho} ${fGrho} ${fBrho}] . "\n" .
54     q[${bRrho} ${bGrho} ${bBrho}] . "\n\n" ;
55    
56     if ($windoz) {
57     system "rcalc -l -e \"abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)\" " .
58     "-e \"lum(r,g,b):.265*r+.670*g+.065*b\" " .
59     "-e \"trans=lum(Rtau,Gtau,Btau)\" " .
60     "-e \"rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)\" " .
61     "-e \"cond=and(trans-.645, not(0.005-abs(rfront-rback)))\" " .
62     "-i \"$optf\" -o \"$outf\" @ARGV" ;
63     } else {
64     system "rcalc -l -e 'abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)' " .
65     "-e 'lum(r,g,b):.265*r+.670*g+.065*b' " .
66     "-e 'trans=lum(Rtau,Gtau,Btau)' " .
67     "-e 'rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)' " .
68     "-e 'cond=and(trans-.645, not(0.005-abs(rfront-rback)))' " .
69     "-i '$optf' -o '$outf' @ARGV" ;
70     }
71     $outf =
72     q[void BRTDfunc $(name)] . "\n" .
73     "10 rR_bronze rG_bronze rB_bronze\n" .
74     q[${Rtau}*tR_bronze ${Gtau}*tG_bronze ${Btau}*tB_bronze] .
75     "\n0 0 0 window.cal\n0\n" .
76     "15 0 0 0 0 0 0 0 0 0\n" .
77     q[${fRrho} ${fGrho} ${fBrho}] . "\n" .
78     q[${bRrho} ${bGrho} ${bBrho}] . "\n\n";
79    
80     if ($windoz) {
81     system "rcalc -l -e \"abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)\" " .
82     "-e \"lum(r,g,b):.265*r+.670*g+.065*b\" " .
83     "-e \"trans=lum(Rtau,Gtau,Btau)\" " .
84     "-e \"rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)\" " .
85     "-e \"cond=and(not(trans-.645), not(0.005-abs(rfront-rback)))\" " .
86     "-i \"$optf\" -o \"$outf\" @ARGV" ;
87     } else {
88     system "rcalc -l -e 'abs(x):if(x,x,-x);and(a,b):if(a,b,a);not(x):if(x,-1,1)' " .
89     "-e 'lum(r,g,b):.265*r+.670*g+.065*b' " .
90     "-e 'trans=lum(Rtau,Gtau,Btau)' " .
91     "-e 'rfront=lum(fRrho,fGrho,fBrho);rback=lum(bRrho,bGrho,bBrho)' " .
92     "-e 'cond=and(not(trans-.645), not(0.005-abs(rfront-rback)))' " .
93     "-i '$optf' -o '$outf' @ARGV" ;
94     }