Subversion Repositories wimsdev

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
#! /bin/sh
2
#
3
# Generate thumbnail pictures
4
 
5
cd `dirname $0`
6
home=`pwd`
7
whome=../../../..
8
 
9
flydraw=$whome/other/bin/flydraw
10
slib_textsize=tiny
11
index=.index
12
 
13
list=`ls [1-9]*/*.data | sed 's/\.data$//'`
14
 
15
for circ in $list; do
16
 if [ ! -s $circ.gif ] || [ $circ.data -nt $circ.gif ] || [ mkthumbs -nt $circ.gif ]; then
17
  echo "Generating $circ.gif"
18
  range=`awk 'BEGIN {rec=0};
19
	/^:/ {rec++};
20
	rec>2 {exit};
21
	rec==2 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
22
  pairs=`echo "$range" | tr '()[]' '@@@@' | cut -s -d@ -f2 | tr ',' ' '`
23
  if [ -z "$pairs" ]; then
24
   pairs=`echo "$range" | cut -s -d, -f4 | tr ',' ' '`
25
  fi
26
  pos1=`awk 'BEGIN {rec=0};
27
	/^:/ {rec++};
28
	rec>3 {exit};
29
	rec==3 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
30
  pos=`echo "$pos1" |\
31
    awk -F, 'NF>3 {print "point "$1","$2",grey";
32
    	if(NF>5) print "linewidth 1";
33
    	for(i=6;i<=NF;i++) {
34
		if($i>=1 || $i<=-1) {
35
			if($5==0) printf("line %g,%g,%g,%g,grey\n",
36
					$1+$i,$2,$1,$2);
37
			else printf("line %g,%g,%g,%g,grey\n",
38
					$1,$2+$i,$1,$2);
39
		}
40
	}
41
    	if(NF>5) print "linewidth 7";
42
    }'`
43
  pairing=
44
  for p in $pairs; do
45
    pair1=`echo "$pos1" | awk -F, 'FNR == '$p' {
46
 	if($5==0) {x1=$1+1;x2=$1+2;y1=y2=$2;}
47
	else {x1=x2=$1;y1=$2-1;y2=$2-2;};
48
	printf "line %d,%d,%d,%d,grey\n",
49
		x1,y1,x2,y2;
50
	exit;
51
    }'`
52
    pairing="$pairing$pair1
53
"
54
  done
55
  wire=`awk 'BEGIN {rec=0};
56
	/^:/ {rec++};
57
	rec>4 {exit};
58
	rec==4 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data |\
59
    sed 's/_color_/black/g'`
60
  dots=`awk 'BEGIN {rec=0};
61
	/^:/ {rec++};
62
	rec>5 {exit};
63
	rec==5 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data`
64
  xrange=`echo $range | cut -d, -f1`
65
  yrange=`echo $range | cut -d, -f2`
66
  xsize=`expr 4 \* $xrange`
67
  ysize=`expr 4 \* $yrange`
68
  [ -n "$dots" ] && dots="points black,$dots"
69
  $flydraw <<@
70
new $xsize,$ysize
71
xrange 0,$xrange
72
yrange 0,$yrange
73
fill 1,1,white
74
linewidth 7
75
$pos
76
linewidth 1
77
$pairing
78
$wire
79
linewidth 4
80
$dots
81
output $circ.gif
82
@
83
 fi
84
done
85