#! /bin/csh -f 
# Last edited on 2009-12-26 12:54:57 by stolfi

set usage = "$0 DIRECTORY IMAGENAME PARMNAME" 

# (Re)creates the file DIRECTORY/IMAGENAME.ppm from
# DIRECTORY/IMAGENAME-raw.ppm or DIRECTORY/IMAGENAME-raw.jpg
# and DIRECTORY/PARMNAME.parms if necessary. 
#
# The ".ppm" files may be compressed with "gzip" or "compress".
#

# Program paths:

echo "script = ${0}"

set imgbin = "${STOLFIHOME}/EXPORT/images/tools/bin"

set pubbin = "${STOLFIHOME}/bin"
set chkdep  = "${pubbin}/check-dependencies"

set PFMbin = "${STOLFIHOME}/bin"/${PLATFORM}
set correct = ${PFMbin}/pnmadjust
set correctOps = ( -debug 116 290 )

if ( $#argv < 3 ) then
  echo "usage: ${usage}" ; exit 1
endif

set dir = "$1"; shift;
set ppmname = "$1"; shift
set parmname = "$1"; shift

set rawppm = "${dir}/${ppmname}-raw.ppm"
set rawjpg = "${dir}/${ppmname}-raw.jpg"
set rawcat = "cat"
if ( ! ( -r ${rawppm} ) ) then
  if ( -r ${rawppm}.Z ) then
    set rawppm = "${rawppm}.Z"
    set rawcat = "zcat"
  else if ( -r ${rawppm}.gz ) then
    set rawppm = "${rawppm}.gz"
    set rawcat = "zcat"
  else if ( -r ${rawjpg} ) then
    set rawppm = "${rawjpg}"
    set rawcat = "djpeg -dct float"
  endif
endif

set baseppm = "${dir}/${ppmname}.ppm"
if ( ! ( -r ${baseppm} ) ) then
  if ( -r ${baseppm}.Z ) then
    set baseppm = "${baseppm}.Z"
  else if ( -r ${baseppm}.gz ) then
    set baseppm = "${baseppm}.gz"
  endif
endif

if ( ! ( ( -r ${rawppm} ) || ( -r ${baseppm} ) ) ) then
  echo "$0"': '"neither ${rawppm}/.jpg nor ${baseppm} were found" ; exit 1
endif

if ( -r ${rawppm} ) then
  # (Re)generate color-corrected PPM file if necessary:
  set parms = "${dir}/p.parms"
  if ( ! ( -r ${parms} ) ) then
    echo "$0"': '"${parms} not found" ; exit 1
  endif
  if ( "`${chkdep} ${baseppm} ${parms} ${rawppm} ${correct}`" == 1 ) then
    echo "=== color-correcting ${rawppm} ==="
    if ( -r ${baseppm} ) /bin/rm ${baseppm}
    set baseppm = "${dir}/${ppmname}.ppm"
    ${rawcat} ${rawppm} \
      | time nice ${correct} ${correctOps} `cat ${parms} | sed -e 's/#.*$//g' -e '/^ *$/d'` \
      > ${baseppm}
    if ( $status != 0 ) exit 1
    gzip ${baseppm}
    set baseppm = "${baseppm}.gz"
  endif
endif

exit 0