X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=visualize;h=f4736ea73dd174cd05a8f54e330bb938187a3250;hb=f142b360622fc2f3aa9088946fdcb9ef774905b0;hp=f24e7b76490b011ef4766078ab190eaf586f316c;hpb=863fae26146496ac4bc3bc6c95cbffff7bb6eca2;p=physik%2Fposic.git diff --git a/visualize b/visualize index f24e7b7..f4736ea 100755 --- a/visualize +++ b/visualize @@ -5,6 +5,16 @@ # author: frank.zirkelbach@physik.uni-augsburg.de # +# help function +draw_cyl() { + cat >> temp.pov <<-EOF +cylinder { +<$1, $3, $2>, <$4, $6, $5>, 0.05 +pigment { color White } +} +EOF +} + directory="doesnt_exist____for_sure" width="1024" height="768" @@ -13,6 +23,8 @@ x0=""; y0=""; z0=""; x1=""; y1=""; z1=""; cx=""; cy=""; cz=""; lx="0"; ly="-100"; lz="100"; +bx0=""; by0=""; bz0=""; +bx1=""; by1=""; bz1=""; while [ "$1" ]; do case "$1" in @@ -25,6 +37,8 @@ while [ "$1" ]; do -c) cx=$2; cy=$3; cz=$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;; *) echo "options:" echo "########" @@ -39,13 +53,15 @@ while [ "$1" ]; do echo " -nll (near lower left)" echo " -fur (far upper right)" echo " -o (ortographic)" + echo "bounding box:" + echo " -b " echo "povray:" echo " -c (camera position)" echo " -l (light source)" exit 1;; esac done - + if [ ! -d $directory ] ; then echo "no valid directory" exit 1 @@ -76,8 +92,8 @@ EOF export x0 y0 z0 x1 y1 z1 radius cat $file | grep -v '#' | awk '\ BEGIN { - x0=ENVIRON["x0"]; y0==ENVIRON["y0"]; z0==ENVIRON["z0"]; - x1=ENVIRON["x1"]; y0==ENVIRON["y1"]; z0==ENVIRON["z1"]; + x0=ENVIRON["x0"]; y0=ENVIRON["y0"]; z0=ENVIRON["z0"]; + x1=ENVIRON["x1"]; y1=ENVIRON["y1"]; z1=ENVIRON["z1"]; radius=ENVIRON["radius"]; } { @@ -85,7 +101,7 @@ EOF ($2<=x1)&&($3<=y1)&&($4<=z1)) { print "sphere { <"$2","$4","$3">, "radius" "; print "texture { pigment { color "$5" } "; - print "finish { phong 1, metallic } } }"; + print "finish { phong 1 metallic } } }"; } }' >> temp.pov else @@ -106,6 +122,8 @@ EOF fi # boundaries + if [ -z "$bx0" ]; then + if [ -z "$x0" ]; then cat $file | grep '# \[D\]' | while read foo bar x1 y1 z1 x2 y2 z2 ; do cat >> temp.pov <<-EOF @@ -115,8 +133,44 @@ pigment { color White } } EOF done + 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 + else + + # manually drawing the 3x4 boundaries specified by argv ... + draw_cyl $bx0 $by0 $bz0 $bx1 $by0 $bz0 + draw_cyl $bx0 $by0 $bz0 $bx0 $by1 $bz0 + draw_cyl $bx1 $by1 $bz0 $bx1 $by0 $bz0 + draw_cyl $bx0 $by1 $bz0 $bx1 $by1 $bz0 + + draw_cyl $bx0 $by0 $bz1 $bx1 $by0 $bz1 + draw_cyl $bx0 $by0 $bz1 $bx0 $by1 $bz1 + draw_cyl $bx1 $by1 $bz1 $bx1 $by0 $bz1 + draw_cyl $bx0 $by1 $bz1 $bx1 $by1 $bz1 + + draw_cyl $bx0 $by0 $bz1 $bx0 $by0 $bz0 + draw_cyl $bx0 $by1 $bz1 $bx0 $by1 $bz0 + draw_cyl $bx1 $by0 $bz1 $bx1 $by0 $bz0 + draw_cyl $bx1 $by1 $bz1 $bx1 $by1 $bz0 + + fi + # add camera and light source cat >> temp.pov <<-EOF camera {