#!/bin/tcsh -f

if ("$argv" == "") then
  set argv=lod*
endif

set num=`ls -1d $argv | wc -l`

set file=finished.iv

cat /dev/null > $file

echo "#Inventor V2.1 ascii" >> $file
echo "" >> $file
echo "Separator {" >> $file
echo '    lightModifier {' >> $file
echo '	ambientIntensity	0.3' >> $file
echo '    }' >> $file
echo '    DirectionalLight {' >> $file
echo '	direction	0.5 -0.5 -1.0' >> $file
echo '    }' >> $file

set printed=0

foreach b ($1/* '')
  set a=$b:t:r:r:r

  if ($printed != $a) then

    if ($printed != 0) then
      echo '} # Separator - '$printed >> $file
    endif

    set lastprinted=$printed
    set printed=$a
    switch ($a)

    case base:
      echo 'Separator { # '$a >> $file
      echo '    Material {' >> $file
      echo '	ambientColor	0 0 0' >> $file
      echo '	diffuseColor	0 0 0' >> $file
      echo '	specularColor	0 0 0' >> $file
      echo '	emissiveColor	0 0 0' >> $file
      echo '	shininess	0.11' >> $file
      echo '    }' >> $file
      breaksw

    case body:
      echo 'Separator { # '$a >> $file
      echo '    Texture2 {' >> $file
      echo '	filename    "road.rgb"' >> $file
      echo '	model       DECAL' >> $file
      echo '    }' >> $file
      echo '    clearCoat {' >> $file
      echo '	index 1.8' >> $file
      echo '	contrastScale 1.3' >> $file
      echo '	contrastBias -0.1' >> $file
      echo '    }' >> $file
      echo '    TextureCoordinateEnvironment {' >> $file
      echo '    }' >> $file
      echo '    Material {' >> $file
      echo '	ambientColor	0.042553 0.262252 0.1' >> $file
      echo '	diffuseColor	0.044681 0.331009 0.104816' >> $file
      echo '	specularColor	0.2 0.268414 0.267403' >> $file
      echo '	emissiveColor	0 0 0' >> $file
      echo '	shininess	0.7' >> $file
      echo '    }' >> $file
      breaksw

   case shiny:
      echo 'Separator { # '$a >> $file
      echo '    Texture2 {' >> $file
      echo '	filename    "road.rgb"' >> $file
      echo '	model       DECAL' >> $file
      echo '    }' >> $file
      echo '    TextureCoordinateEnvironment {' >> $file
      echo '    }' >> $file
      echo '    clearCoat {' >> $file
      echo '	index 1.55' >> $file
      echo '	contrastScale 1.3' >> $file
      echo '	contrastBias -0.1' >> $file
      echo '    }' >> $file
      breaksw

    case tires:
      echo 'Separator { # '$a >> $file
      echo '    Material {' >> $file
      echo '	ambientColor	0.001 0.001 0.001' >> $file
      echo '	specularColor   0.08 0.08 0.08' >> $file
      echo '	diffuseColor    0.0138667 0.0138667 0.0138667' >> $file
      echo '	emissiveColor	0 0 0' >> $file
      echo '	shininess	0.253696' >> $file
      echo '    }' >> $file
      breaksw

    case wheel:
      echo 'Separator { # '$a >> $file
      echo '    Texture2 {' >> $file
      echo '	filename    "road.rgb"' >> $file
      echo '	model       DECAL' >> $file
      echo '    }' >> $file
      echo '    TextureCoordinateEnvironment {' >> $file
      echo '    }' >> $file
      echo '    Material {' >> $file
      echo '	ambientColor	0.001 0.001 0.001' >> $file
      echo '	specularColor   0.58 0.58 0.58' >> $file
      echo '	diffuseColor    0.38667 0.38667 0.38667' >> $file
      echo '	emissiveColor	0 0 0' >> $file
      echo '	shininess	0.053696' >> $file
      echo '    }' >> $file
      breaksw

    case window_lights:
    case windshield:
      echo 'Separator { # '$a >> $file
      echo '    Texture2 {' >> $file
      echo '	filename    "road.rgb"' >> $file
      echo '	model       DECAL' >> $file
      echo '    }' >> $file
      echo '    TextureCoordinateEnvironment {' >> $file
      echo '    }' >> $file
      echo '    clearCoat {' >> $file
      echo '	index 1.55' >> $file
      echo '	contrastScale 1.3' >> $file
      echo '	contrastBias -0.1' >> $file
      echo '    }' >> $file
      echo '    Material {' >> $file
      echo '	ambientColor	0.000960784 0.000960784 0.000960784' >> $file
      echo '	diffuseColor	0.137255 0.137255 0.137255' >> $file
      echo '	specularColor	0.164706 0.164706 0.164706' >> $file
      echo '	emissiveColor	0 0 0' >> $file
      echo '	shininess	0.353696' >> $file
      echo '	transparency	0.351351' >> $file
      echo '    }' >> $file
      breaksw

    case "":
      set printed=0
      breaksw

   default:
      set printed=0
      breaksw
    endsw

  endif

  if ($a != '') then
    echo "    LOD {" >> $file

    if ($num == 2) then
      switch ($a)
        case interior
          echo "	range	[ 400.0, 1000.0 ]" >> $file
          breaksw
        default:
          echo "	range	[ 500.0, 5000.0 ]" >> $file
	  breaksw
      endsw
    else if ($num == 1) then
      echo "	# degenerate LOD" >> $file
      echo "	range [ 5000.0 ]" >> $file
    else
      echo "Unsupported number of children ($num)"
      exit
    endif

    foreach f ($argv)
      echo "	foreignFile {" >> $file
      echo "	    name	"\""$f/$b:t"\" >> $file
      echo "	    inheritance	APPEARANCE" >> $file
      echo "	} # foreignFile" >> $file
    end
    echo "    } # LOD" >> $file
  endif

end

echo "} # Separator" >> $file

set argv
