Merge branch 'leadoff'
[physik/posic.git] / visualize
index 7dc964e..0b8fc61 100755 (executable)
--- a/visualize
+++ b/visualize
@@ -31,7 +31,7 @@ width="640"
 height="480"
 radius="0.6"
 x0="-0.6"; y0="-0.6"; z0="-0.6";
-x1="+0.6"; y1="+0.6"; z1="+0.6";
+x1="0.6"; y1="0.6"; z1="0.6";
 cx=""; cy=""; cz="";
 lx="0"; ly="-100"; lz="100";
 ortographic=""
@@ -39,6 +39,7 @@ bx0=""; by0=""; bz0="";
 bx1=""; by1=""; bz1="";
 bcr="";
 clx="0"; cly="0"; clz="0";
+extra=0
 
 # parse argv
 
@@ -58,6 +59,7 @@ while [ "$1" ]; do
                                bx1=$5; by1=$6; bz1=$7; shift 7;;
                -B)             bcr=$2;                 shift 2;;
                -C)             lc=$2;                  shift 2;;
+               -e)             extra=1;                shift 1;;
                *)
                                echo "options:"
                                echo "########"
@@ -92,6 +94,7 @@ done
 [ "$lc" = "c" ] && lc=3.566
 
 offset=`echo 0.125 \* $lc | bc`
+#offset=0.0
 
 x0=`echo $x0 \* $lc + $offset | bc`
 y0=`echo $y0 \* $lc + $offset | bc`
@@ -123,6 +126,11 @@ fi
 
 POVRAY="povray -W${width} -H${height} -d" 
 
+# convert options
+
+COPTS="-font /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"
+COPTS="$COPTS -depth 8 -fill white -stroke blue -pointsize 24"
+
 # do it ...
 
 if [ -d $directory ]; then
@@ -153,18 +161,21 @@ EOF
 
        # atoms
        if [ -n "$x0" ]; then
-               export x0 y0 z0 x1 y1 z1 radius
+               export x0 y0 z0 x1 y1 z1 radius extra
                cat $file | grep -v '#' | awk '\
                BEGIN {
                        x0=ENVIRON["x0"]; y0=ENVIRON["y0"]; z0=ENVIRON["z0"];
                        x1=ENVIRON["x1"]; y1=ENVIRON["y1"]; z1=ENVIRON["z1"];
-                       radius=ENVIRON["radius"];
+                       radius=ENVIRON["radius"]; extra=ENVIRON["extra"];
                }
                {
                        if(($2>=x0)&&($3>=y0)&&($4>=z0)&&\
                           ($2<=x1)&&($3<=y1)&&($4<=z1)) {
                                print "sphere { <"$2","$4","$3">, "radius" ";
-                               print "texture { pigment { color "$5" } ";
+                               if(extra)
+               print "texture { pigment { color rgb<"$6/4.4",0,"1-$6/4.4"> } ";
+                               else
+               print "texture { pigment { color "$5" } ";
                                print "finish { phong 1 metallic } } }";
                        }
                }' >> temp.pov
@@ -188,29 +199,30 @@ EOF
        # boundaries
        if [ -z "$bx0" ]; then
 
-       if [ -z "$x0" ]; then
+       #if [ -z "$x0" ]; then
 
        cat $file | grep '# \[D\]' | while read foo bar x1 y1 z1 x2 y2 z2 ; do
-               draw_cyl $x1 $z1 $y1 $x2 $z2 $y2 0.05
+               draw_cyl $x1 $y1 $z1 $x2 $y2 $z2 0.05
        done
 
-       else
+       #else
+
                # manually drawing the 3x4 boundaries ...
-               draw_cyl $x0 $y0 $z0 $x1 $y0 $z0
-               draw_cyl $x0 $y0 $z0 $x0 $y1 $z0
-               draw_cyl $x1 $y1 $z0 $x1 $y0 $z0
-               draw_cyl $x0 $y1 $z0 $x1 $y1 $z0
-
-               draw_cyl $x0 $y0 $z1 $x1 $y0 $z1
-               draw_cyl $x0 $y0 $z1 $x0 $y1 $z1
-               draw_cyl $x1 $y1 $z1 $x1 $y0 $z1
-               draw_cyl $x0 $y1 $z1 $x1 $y1 $z1
-
-               draw_cyl $x0 $y0 $z1 $x0 $y0 $z0
-               draw_cyl $x0 $y1 $z1 $x0 $y1 $z0
-               draw_cyl $x1 $y0 $z1 $x1 $y0 $z0
-               draw_cyl $x1 $y1 $z1 $x1 $y1 $z0
-       fi
+#              draw_cyl $x0 $y0 $z0 $x1 $y0 $z0
+#              draw_cyl $x0 $y0 $z0 $x0 $y1 $z0
+#              draw_cyl $x1 $y1 $z0 $x1 $y0 $z0
+#              draw_cyl $x0 $y1 $z0 $x1 $y1 $z0
+
+#              draw_cyl $x0 $y0 $z1 $x1 $y0 $z1
+#              draw_cyl $x0 $y0 $z1 $x0 $y1 $z1
+#              draw_cyl $x1 $y1 $z1 $x1 $y0 $z1
+#              draw_cyl $x0 $y1 $z1 $x1 $y1 $z1
+
+#              draw_cyl $x0 $y0 $z1 $x0 $y0 $z0
+#              draw_cyl $x0 $y1 $z1 $x0 $y1 $z0
+#              draw_cyl $x1 $y0 $z1 $x1 $y0 $z0
+#              draw_cyl $x1 $y1 $z1 $x1 $y1 $z0
+#      fi
 
        else
 
@@ -281,6 +293,8 @@ EOF
 
        # mv png
        $POVRAY temp.pov > /dev/null 2>&1
+       time=`basename $file | awk -F. '{ print $1 }' | awk -F_ '{ print $3 }'`
+       convert $COPTS -draw "text 5,20 't = $time fs'" temp.png temp.png
        mv temp.png `echo $file | sed 's/\.xyz/\.png/'`
 
 done