Blame | Last modification | View Log | RSS feed
#! /bin/sh
#
# Generate thumbnail pictures
cd `dirname $0`
home=`pwd`
whome=../../../..
flydraw=$whome/other/bin/flydraw
slib_textsize=tiny
index=.index
list=`ls [1-9]*/*.data | sed 's/\.data$//'`
for circ in $list; do
if [ ! -s $circ.gif ] || [ $circ.data -nt $circ.gif ] || [ mkthumbs -nt $circ.gif ]; then
echo "Generating $circ.gif"
range=`awk 'BEGIN {rec=0};
/^:/ {rec++};
rec>2 {exit};
rec==2 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
pairs=`echo "$range" | tr '()[]' '@@@@' | cut -s -d@ -f2 | tr ',' ' '`
if [ -z "$pairs" ]; then
pairs=`echo "$range" | cut -s -d, -f4 | tr ',' ' '`
fi
pos1=`awk 'BEGIN {rec=0};
/^:/ {rec++};
rec>3 {exit};
rec==3 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
pos=`echo "$pos1" |\
awk -F, 'NF>3 {print "point "$1","$2",grey";
if(NF>5) print "linewidth 1";
for(i=6;i<=NF;i++) {
if($i>=1 || $i<=-1) {
if($5==0) printf("line %g,%g,%g,%g,grey\n",
$1+$i,$2,$1,$2);
else printf("line %g,%g,%g,%g,grey\n",
$1,$2+$i,$1,$2);
}
}
if(NF>5) print "linewidth 7";
}'`
pairing=
for p in $pairs; do
pair1=`echo "$pos1" | awk -F, 'FNR == '$p' {
if($5==0) {x1=$1+1;x2=$1+2;y1=y2=$2;}
else {x1=x2=$1;y1=$2-1;y2=$2-2;};
printf "line %d,%d,%d,%d,grey\n",
x1,y1,x2,y2;
exit;
}'`
pairing="$pairing$pair1
"
done
wire=`awk 'BEGIN {rec=0};
/^:/ {rec++};
rec>4 {exit};
rec==4 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data |\
sed 's/_color_/black/g'`
dots=`awk 'BEGIN {rec=0};
/^:/ {rec++};
rec>5 {exit};
rec==5 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
xrange=`echo $range | cut -d, -f1`
yrange=`echo $range | cut -d, -f2`
xsize=`expr 4 \* $xrange`
ysize=`expr 4 \* $yrange`
[ -n "$dots" ] && dots="points black,$dots"
$flydraw <<@
new $xsize,$ysize
xrange 0,$xrange
yrange 0,$yrange
fill 1,1,white
linewidth 7
$pos
linewidth 1
$pairing
$wire
linewidth 4
$dots
output $circ.gif
@
fi
done