ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/rtpict.pl
(Generate patch)

Comparing ray/src/util/rtpict.pl (file contents):
Revision 2.10 by greg, Wed Aug 14 22:18:03 2019 UTC vs.
Revision 2.18 by greg, Wed Apr 8 16:20:00 2020 UTC

# Line 11 | Line 11 | use strict;
11   my $nprocs = 1;
12   # rtrace options and the associated number of arguments
13   my %rtraceC = ('-dt',1, '-dc',1, '-dj',1, '-ds',1, '-dr',1, '-dp',1,
14 <                '-ss',1, '-st',1, '-e',1, '-am',1,
14 >                '-ss',1, '-st',1, '-e',1, '-am',1, '-P',1, '-PP',1,
15                  '-ab',1, '-af',1, '-ai',1, '-aI',1, '-ae',1, '-aE',1,
16                  '-av',3, '-aw',1, '-aa',1, '-ar',1, '-ad',1, '-as',1,
17 <                '-me',3, '-ma',3, '-mg',1, '-ms',1, '-lr',1, '-lw',1);
17 >                '-me',3, '-ma',3, '-mg',1, '-ms',1, '-lr',1, '-lw',1,
18 >                '-ap',2, '-am',1, '-ac',1, '-aC',1);
19   # boolean rtrace options
20   my @boolO = ('-w', '-bv', '-dv', '-i', '-u');
21   # view options and the associated number of arguments
22   my %vwraysC = ('-vf',1, '-vtv',0, '-vtl',0, '-vth',0, '-vta',0, '-vts',0, '-vtc',0,
23                  '-x',1, '-y',1, '-vp',3, '-vd',3, '-vu',3, '-vh',1, '-vv',1,
24 <                '-vo',1, '-va',1, '-vs',1, '-vl',1, '-pa',1, '-pj',1, '-pd',1);
24 >                '-vo',1, '-va',1, '-vs',1, '-vl',1, '-pa',1, '-pj',1);
25   # options we need to silently ignore
26 < my %ignoreC = ('-t',1, '-ps',1, '-pt',1, '-pm',1);
26 > my %ignoreC = ('-t',1, '-ps',1, '-pt',1, '-pm',1, '-pd',1);
27   # Starting options for rtrace (rpict values)
28   my @rtraceA = split(' ', 'rtrace -u- -dt .05 -dc .5 -ds .25 -dr 1 ' .
29                                  '-aa .2 -ar 64 -ad 512 -as 128 -lr 7 -lw 1e-03');
30   my @vwraysA = ('vwrays', '-ff', '-pj', '.67');
31   my @vwrightA = ('vwright', '-vtv');
32 < my @rpictA = ('rpict');
32 > my @rpictA = ('rpict', '-ps', '1');
33   my $outpatt = '^-o[vrxlLRXnNsmM]+';
34   my $refDepth = "";
35   my $irrad = 0;
36 + my $persist = 0;
37   my $outlyr;
38   my $outdir;
39   my $outpic;
# Line 40 | Line 42 | OPTION:                                # sort through options
42   while ($#ARGV >= 0 && "$ARGV[0]" =~ /^[-\@]/) {
43          # Check for file inclusion
44          if ("$ARGV[0]" =~ /^\@/) {
45 <                open my $handle, '<', substr($ARGV[0], 1);
45 >                open my $handle, '<', substr($ARGV[0], 1) or die "No file for $ARGV[0]\n";
46                  shift @ARGV;
47                  chomp(my @args = <$handle>);
48                  close $handle;
# Line 75 | Line 77 | while ($#ARGV >= 0 && "$ARGV[0]" =~ /^[-\@]/) {
77          }
78          # Check rtrace options
79          if (defined $rtraceC{$ARGV[0]}) {
80 +                $persist ||= ("$ARGV[0]" =~ /^-PP?$/);
81                  push @rtraceA, $ARGV[0];
82                  push @rpictA, shift(@ARGV);
83                  for (my $i = $rtraceC{$rpictA[-1]}; $i-- > 0; ) {
# Line 124 | Line 127 | if (defined $outpic) {         # redirect output?
127   }
128   #####################################################################
129   ##### May as well run rpict?
130 < if ($nprocs == 1 && !defined($outdir)) {
130 > if ($nprocs == 1 && $persist == 0 && !defined($outdir)) {
131          push(@rpictA, $ARGV[0]) if ($#ARGV == 0);
132          exec @rpictA ;
133   }
# Line 138 | Line 141 | my @res = split(/\s/, `@vwraysA -d`);
141   #####################################################################
142   ##### Generating picture with depth buffer?
143   if (defined $outzbf) {
144 <        exec "@vwraysA | @rtraceA -fff -olv @res $oct | " .
145 <                "rsplit -ih -iH -f " .
146 <                        "-of $outzbf " .
144 <                        "-oh -oH -of3 '!pvalue -r -df' | " .
145 <                "getinfo -a 'VIEW=$view'";
144 >        exec "@vwraysA | @rtraceA -fff -olv @res '$oct' | " .
145 >                "rsplit -ih -iH -f -of '$outzbf' -oh -oH -of3 - | " .
146 >                "pvalue -r -df | getinfo -a 'VIEW=$view'";
147   }
148   #####################################################################
149   ##### Base case with output picture only?
150   if (! defined $outdir) {
151 <        exec "@vwraysA | @rtraceA -ffc @res $oct | getinfo -a 'VIEW=$view'";
151 >        exec "@vwraysA | @rtraceA -ffc @res '$oct' | getinfo -a 'VIEW=$view'";
152   }
153   #####################################################################
154   ##### Layered image output case
# Line 188 | Line 189 | if (! -d $outdir) {
189   foreach my $oval (split //, $outlyr) {
190          die "Duplicate or unsupported type '$oval' in -o$outlyr\n"
191                                          if (!defined $rtoutC{$oval});
192 +        my $outfile = "$outdir/$rtoutC{$oval}";
193 +        die "File '$outfile' already exists\n" if (-e $outfile);
194          my ($otyp) = ($rtoutC{$oval} =~ /(\.[^.]+)$/);
195          push @rsplitA, $rcodeC{$otyp}[0];
196 <        push @rsplitA, qq{'$rcodeC{$otyp}[1] > "$outdir/$rtoutC{$oval}"'};
196 >        push @rsplitA, qq{'$rcodeC{$otyp}[1] > "$outfile"'};
197          delete $rtoutC{$oval};
198   }
199                          # call rtrace + rsplit
200 < exec "@vwraysA | @rtraceA -fff @res $oct | getinfo -a 'VIEW=$view' | @rsplitA";
200 > exec "@vwraysA | @rtraceA -fff @res '$oct' | getinfo -a 'VIEW=$view' | @rsplitA";

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines