1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
| #!/bin/bash
gfvpair() {
if awk -v t=$1 '
BEGIN { ts = -1; ss = ""; } {
for (i = 1; i <= NF; i++) {
te = $i*1.; se = $i;
if (ts >= 0 && t >= ts && t <= te)
break;
ts = te; ss = se;
}
if (ss == "" || ts == te)
exit (1);
print ss,se;
}'; then
return 0;
fi
return 1;
}
gfv() {
t=$1
shift
files=""
while test $# -gt 0; do
files="$files $1"
shift
done
if ! pair=`echo $files | gfvpair $t`; then
return 1
fi
echo Clear
start=`echo $pair | awk '{print $1}'`
end=`echo $pair | awk '{print $2}'`
ts=`echo $pair | awk '{print substr($1,0,index($1,":")-1)}'`
te=`echo $pair | awk '{print substr($2,0,index($2,":")-1)}'`
txs=`grep 'tx =' $start | awk '{print $3}'`
tys=`grep 'tx =' $start | awk '{print $6}'`
fovs=`grep 'fov =' $start | awk '{print $3}'`
txe=`grep 'tx =' $end | awk '{print $3}'`
tye=`grep 'tx =' $end | awk '{print $6}'`
fove=`grep 'fov =' $end | awk '{print $3}'`
awk -v txs=$txs -v tys=$tys -v txe=$txe -v tye=$tye \
-v fovs=$fovs -v fove=$fove \
-v t=$t -v ts=$ts -v te=$te '{
if (te > ts)
a = (t - ts)*1./(te - ts);
else
a = 0.;
if ($1 == "tx")
print " tx = " txs + (txe - txs)*a " ty = " tys + (tye - tys)*a;
else if ($1 == "fov")
print " fov = " fovs + (fove - fovs)*a;
else
print $0;
}' < $start
}
gfs=""
gfv=""
command=""
while test $# -gt 0; do
case "$1" in
*.gfv) gfv="$gfv $1" ;;
*.gfs) gfs="$gfs $1" ;;
*) command="$command $1" ;;
esac
shift
done
for f in $gfs; do
t=`grep -a "Time { t = " $f | awk '{print $5}'`
if gfv $t $gfv; then
gerris3D -e "Init { istep = 1 } { f = (f < 1e-3 ? 0 : f > 1. - 1e-3 ? 1. : f) }" $f
echo $command
fi
done
|