X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=visualize;h=7dc964ea638e8053330f70b07b85a645687ebaa4;hb=67df6b3a722a44e36fd56f3f040c3c9726b3fc3f;hp=ab6e374ebd551c65074c3bd89b28df2bf9efe36e;hpb=95cfeec6fbbfa975d5ac5b99ec3f7386ca3d6071;p=physik%2Fposic.git diff --git a/visualize b/visualize index ab6e374..7dc964e 100755 --- a/visualize +++ b/visualize @@ -23,18 +23,24 @@ pigment { color Blue } EOF } +# defaults + +lc=5.429 directory="doesnt_exist____for_sure" width="640" height="480" -radius="1.0" -x0=""; y0=""; z0=""; -x1=""; y1=""; z1=""; +radius="0.6" +x0="-0.6"; y0="-0.6"; z0="-0.6"; +x1="+0.6"; y1="+0.6"; z1="+0.6"; cx=""; cy=""; cz=""; lx="0"; ly="-100"; lz="100"; ortographic="" bx0=""; by0=""; bz0=""; bx1=""; by1=""; bz1=""; bcr=""; +clx="0"; cly="0"; clz="0"; + +# parse argv while [ "$1" ]; do case "$1" in @@ -45,11 +51,13 @@ while [ "$1" ]; do -nll) x0=$2; y0=$3; z0=$4; shift 4;; -fur) x1=$2; y1=$3; z1=$4; shift 4;; -c) cx=$2; cy=$3; cz=$4; shift 4;; + -L) clx=$2; cly=$3; clz=$4; shift 4;; -l) lx=$2; ly=$3; lz=$4; shift 4;; -o) ortographic=1; shift 1;; -b) bx0=$2; by0=$3; bz0=$4; bx1=$5; by1=$6; bz1=$7; shift 7;; -B) bcr=$2; shift 2;; + -C) lc=$2; shift 2;; *) echo "options:" echo "########" @@ -61,6 +69,8 @@ while [ "$1" ]; do echo "atom size:" echo " -r " echo " -B " + echo "unit cell:" + echo " -C " echo "visualization volume:" echo " -nll (near lower left)" echo " -fur (far upper right)" @@ -69,19 +79,61 @@ while [ "$1" ]; do echo " -b " echo "povray:" echo " -c (camera position)" + echo " -L (camera look)" echo " -l (light source)" exit 1;; esac done -if [ ! -d $directory ] ; then - echo "no valid directory" - exit 1 +# calculation from lattic eunits to angstroms + +[ "$lc" = "sic" ] && lc=4.359 +[ "$lc" = "si" ] && lc=5.429 +[ "$lc" = "c" ] && lc=3.566 + +offset=`echo 0.125 \* $lc | bc` + +x0=`echo $x0 \* $lc + $offset | bc` +y0=`echo $y0 \* $lc + $offset | bc` +z0=`echo $z0 \* $lc + $offset | bc` +x1=`echo $x1 \* $lc + $offset | bc` +y1=`echo $y1 \* $lc + $offset | bc` +z1=`echo $z1 \* $lc + $offset | bc` + +clx=`echo $clx \* $lc + $offset | bc` +cly=`echo $cly \* $lc + $offset | bc` +clz=`echo $clz \* $lc + $offset | bc` + +if [ -n "$cx" -a -n "$cy" -a -n "$cz" ]; then + cx=`echo $cx \* $lc + $offset | bc` + cy=`echo $cy \* $lc + $offset | bc` + cz=`echo $cz \* $lc + $offset | bc` fi +if [ -n "$bx0" ]; then + bx0=`echo $bx0 \* $lc + $offset | bc` + by0=`echo $by0 \* $lc + $offset | bc` + bz0=`echo $bz0 \* $lc + $offset | bc` + bx1=`echo $bx1 \* $lc + $offset | bc` + by1=`echo $by1 \* $lc + $offset | bc` + bz1=`echo $bz1 \* $lc + $offset | bc` +fi + +# povray command + POVRAY="povray -W${width} -H${height} -d" -for file in $directory/atomic_conf_*.xyz; do +# do it ... + +if [ -d $directory ]; then + filesource=$directory/atomic_conf_*.xyz +fi + +if [ -f $directory ]; then + filesource=$directory +fi + +for file in $filesource; do cat > temp.pov <<-EOF #include "colors.inc" @@ -222,7 +274,7 @@ EOF fi cat >> temp.pov <<-EOF location $camloc -look_at <0,0,0> +look_at <$clx,$clz,$clz> } light_source { <0,100,-100> color White shadowless } EOF