Subversion Repositories wimsdev

Rev

Rev 8402 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#! /bin/sh
#
# Mandatary parms: $1=plot number. $2=session number.
# environment parms: ins_source.
# reserved words: ins_border (border size).

if [ "$w_ins_format" = "tex" ]; then
  intermediate_format=tex
else
  intermediate_format=gif
fi
flydraw=$w_wims_home/other/bin/flydraw

CONVERT_DIS=2
CONVERT_OPT="-quality 90 -dispose $CONVERT_DIS"

# default size
if [ -z "$w_insdraw_size" ]; then
 w_insdraw_size=256,256
fi

if [ "$w_anim_format" != "mng" ]; then
 w_anim_format=gif
fi

if [ -z "$2" ]; then exit; fi

if [ ! -z "$w_insdraw_transparent" ]; then
 draw_transp=transparent
 convert_transp="-transparent $w_insdraw_transparent"
else
 convert_transp=
fi

# png transparency is not compatible with browsers
#if [ "$w_ins_format" = "png" ]; then
# convert_transp="-transparent '#000000'"
#fi

if [ -z "$w_ins_anim_loop" ]; then w_ins_anim_loop=0; fi

rm -f $2/insert$w_wims_inssub-$1.* 2>/dev/null
rm -f $2/insdraw.cmd 2>/dev/null

draw_content=
anim_list=
i=0
if [ "$w_ins_format" = "tex" ]; then
  draw_content="$draw_content
 tikzfile $2/insert$w_wims_inssub-$1.tex
 new $w_insdraw_size
 wims_linecount 0
 $ins_source
 "
else
  while [ $i -lt $ins_anim_frames ]; do
  draw_content="$draw_content
 new $w_insdraw_size
 animstep=$i
 s=$i/$ins_anim_frames
 wims_linecount 0
 $ins_source
 output $2/insert$w_wims_inssub-$1-$i.$intermediate_format
"
  anim_list="$anim_list $2/insert$w_wims_inssub-$1-$i.$intermediate_format"
i=`expr $i + 1`
  done
fi
if [ -z "$w_insdraw_filebase" ]; then
 if [ "$trusted_module" = "yes" ]; then
  flydraw_filebase="$module_dir/insdraw gifs"
 else
  flydraw_filebase="$module_dir gifs"
 fi
else
 if [ "$trusted_module" = "yes" ]; then
  flydraw_filebase="$w_insdraw_filebase"
 else
  flydraw_filebase=
 fi
 for b in $w_insdraw_filebase
 do
  case $b in
   modules/data/*) flydraw_filebase="$flydraw_filebase $b"
   ;;
   datamodule/*) b_=`echo "$b" | sed "s!datamodule!modules/data!"`
   flydraw_filebase="$flydraw_filebase $module_dir/images $b_"
   ;;
   */log/classes/*) flydraw_filebase="$flydraw_filebase $b"
   ;;
   */getfile/oefimg*) flydraw_filebase="$flydraw_filebase $b"
   ;;
   */getfile/click*) flydraw_filebase="$flydraw_filebase $b"
   ;;
   wimshome/public_html*) b_=`echo "$b" | sed "s!wimshome/public_html/!!"`
    flydraw_filebase="$b_ $flydraw_filebase"
   ;;
   *) flydraw_filebase="$flydraw_filebase $module_dir/$b"
   ;;
  esac
 done
 flydraw_filebase="$flydraw_filebase gifs"
fi
export flydraw_filebase

$flydraw <<@
$draw_content
@
echo "$draw_content" >>$2/insdraw.cmd

alist=
for i in $anim_list
do
 if [ -s $i ]; then alist="$alist $i"; fi
done

if [ $ins_anim_frames -lt 2 ]; then
 if [ $w_ins_format = $intermediate_format ]; then
  bin/ch..root mv $2/insert$w_wims_inssub-$1-0.$intermediate_format $2/insert$w_wims_inssub-$1.$w_ins_format
 else
  bin/ch..root convert $CONVERT_OPT $convert_transp -density $w_ins_density $2/insert$w_wims_inssub-$1-0.$intermediate_format $2/insert$w_wims_inssub-$1.$w_ins_format 2>$2/convert.err || bin/convert..switch $2/convert.err
 fi
else
  w_ins_format=$w_anim_format
  if [ "$intermediate_format" = "gif" ] && [ "w_ins_format"  = "gif" ]; then
   whirlgif -disp prev -time $ins_anim_delay -loop $w_ins_anim_loop -o $2/insert$w_wims_inssub-$1.$w_ins_format $alist
  else
   bin/ch..root convert $CONVERT_OPT $convert_transp -delay $ins_anim_delay -loop $w_ins_anim_loop $alist $2/insert$w_wims_inssub-$1.$w_ins_format 2>$2/convert.err || bin/convert..switch $2/convert.err
  fi
fi

# Remove zero-sized jpeg file, for otherwise netscape doesn't understand,
# and waits forever trying to interprete it.
if [ ! -s $2/insert$w_wims_inssub-$1.$w_ins_format ]; then rm -f $2/insert$w_wims_inssub-$1.$w_ins_format; fi