msnapper 2.16 KiB
#! /usr/bin/perl
($me = $0) =~ s'.*/'';
$res = "";
$fovy = "";
$asp = "";
sub scanopts {
while(1) {
if($ARGV[0] =~ /^-n/) {
$nowait = shift(@ARGV);
} elsif($ARGV[0] =~ /^-res/) {
shift(@ARGV);
$res = shift(@ARGV) . " " . shift(@ARGV);
} elsif($ARGV[0] =~ /^-fov/) {
shift(@ARGV);
$fovy = shift(@ARGV);
} elsif($ARGV[0] =~ /^-asp/) {
shift(@ARGV), shift(@ARGV);
} elsif($ARGV[0] =~ /^-subcam/) {
shift(@ARGV);
@subcams = grep($_ ne "", split(/[\s,]/, shift(@ARGV)));
} else {
return;
}
}
}
&scanopts();
unless(@ARGV >= 3 && ($ARGV[1].$ARGV[2]) =~ /^\d+$/ && $ARGV[2] >= $ARGV[1]) {
print STDERR "Usage: $me stemname startframe endframe [framestep] [-res XSIZE YSIZE] [-fovy FOVY]
Command partiview to take snapshots along currently-loaded (rdata) path.
Output images are named stemname.NNNN.sgi unless stemname includes % sign,
in which case it's taken as a printf format string (including suffix).
Use as e.g., in partiview command box,
async $me wow 500 600 5
or async $me wow.%04d.tif 1 100
";
exit(1);
}
$stem = shift(@ARGV);
$min = shift(@ARGV);
$max = shift(@ARGV);
$step = ($ARGV[0] =~ /^\d+$/) ? shift(@ARGV) : 1;
$min = 1 if $min <= 0;
&scanopts();
$stem = "$stem.%04d.sgi" unless $stem =~ /%/;
$stem =~ s/\%/\@.\%/ if @subcams && $stem !~ /\@/;
$| = 1;
print "{\nwinsize $res\n}\n" if $res;
$set_fovy = "fovy $fovy" if $fovy;
@subcams = ("") unless(@subcams);
while(@subcams) {