# HG changeset patch # User Axel Jacobs # Date 1302383597 -3600 # Node ID d59fbab896adb9950231ad6d2b5cf5da5bd0273e # Parent 869909d14a39e83d676537bf5789c53cad454142 Added objline.pl diff -r 869909d14a39 -r d59fbab896ad bin/objline.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/objline.pl Sat Apr 09 22:13:17 2011 +0100 @@ -0,0 +1,76 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use File::Temp qw/ tempdir /; +use File::Basename; + +#my $td = tempdir( CLEANUP => 0 ); +my $td = "/tmp/objline"; +mkdir $td; +#print "Temdir: $td\n"; +my @rad = (); +my @prllmgf = (); +my @oblqmgf = (); + +#my $name; +#my $path; +#my $extn; +my $fn = ""; + +my $oblqxf = "-rz 45 -ry 45"; + +if ($#ARGV < 0) { + # Input is from STDIN: Capture to file + open(FH, ">$td/stdin.rad"); + while (<>) { + print FH; + } + close FH; + # Pretend stdin.rad was passed as a filename + @ARGV = ("$td/stdin.rad"); +} + +foreach (@ARGV) { + my ($name, $path, $extn) = fileparse($_); + $fn = $name.$extn; + push(@rad, "$td/$fn.orig"); + push(@prllmgf, "$td/$fn.orig.mgf"); + push(@oblqmgf, "$td/$fn.oblq.mgf"); + + # Expand in-line commands such as !genbox + system "xform $_ > $td/$fn.orig"; + system "rad2mgf $td/$fn.orig > $td/$fn.orig.mgf"; + + open (FH, ">$td/$fn.oblq.mgf"); + print FH "i $fn.orig.mgf $oblqxf > $td/$fn.oblq.mgf\n"; + close (FH); +} + +my $rce = '\'xm=($1+$2)/2;ym=($3+$4)/2;zm=($5+$6)/2'; +$rce .= ';max(a,b):if(a-b,a,b);r=max(max($2-$1,$4-$3),$6-$5)*.52'; +$rce .= ';$1=xm-r;$2=xm+r;$3=ym-r;$4=ym+r;$5=zm-r;$6=zm+r\''; + +my $rads = join(' ', @rad); +my $prlldim = `getbbox -h $rads |rcalc -t' ' -e $rce`; +chomp($prlldim); +print "prlldim: $prlldim\n"; +my $oblqdim = `xform $oblqxf $rads |getbbox -h|rcalc -t' ' -e $rce`; +chomp($oblqdim); +print "oblqdim: $oblqdim\n"; + +my $prlls = join(' ', @prllmgf); #!!! +print "prlls: $prlls\n"; +my $oblqs = join(' ', @oblqmgf); +my $cmd; +foreach ('x', 'y', 'z') { + $cmd = "mgf2meta -t .005 $_ " . $prlldim . ' ' . $prlls . " >$td/$_.mta"; + #system "mgf2meta -t .005 $_ $prlldim $prlls >$td/$_.mta"; + system "$cmd"; +} +$cmd = "mgf2meta -t .005 x " . $oblqdim . ' ' . $oblqs . " >$td/o.mta"; +system "$cmd"; + +system("plot4", "$td/x.mta", "$td/y.mta", "$td/z.mta", "$td/o.mta"); + +#EOF