// Last edited on 2005-01-05 23:45:38 by stolfi
// Processed by remove-cam-lights

background{ color rgb < 0.80, 0.80, 1.00>  }

#declare preto =
  texture {
    pigment { color rgb < 0.00, 0.00, 0.00 > }
    finish { diffuse 0.8 specular 0.2 roughness 0.015 ambient 0.4 }
  }

#declare verde =
texture {
    pigment { color rgb < 0.20, 0.80, 0.20 > }
    finish { diffuse 0.5 specular 0.0 roughness 0.05 ambient 0.1 }
  }

#declare azul =
texture {
    pigment { color rgb < 0.70, 0.70, 1.00 > }
    finish { diffuse 0.8 specular 0.2 roughness 0.05 ambient 0.1 }
  }

#declare branco =
texture {
    pigment { color rgb < 1.00, 1.00, 1.00 > }
    finish { diffuse 0.7 specular 0.3 roughness 0.00005 ambient 0.1 }
  }

#declare cinza =
texture {
    pigment { color rgb < 0.70, 0.70, 0.70 > }
    finish { diffuse 0.6 specular 0.4 roughness 0.5 ambient 0.1 }
  }

#declare vermelho =
texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > }
    finish { diffuse 0.8 specular 0.2 roughness 0.0001 ambient 0.1 }
  }

#declare amarelo =
texture {
    pigment { color rgb < 1.0,1.00, 0.00 > }
    finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 }
  }

#declare fundo =
  plane{<0,0,1>, 0
    texture{
      pigment {checker <0.80, 0.80, 0.00>,<1.00, 1.00,0.00> }
      finish  {ambient 0.1 diffuse 0.9 }

  }
}

#declare alfa_dedo = 120;
#declare alfa_mao = 30;
#declare alfa_antebraco = 30;
#declare alfa_braco = 45;

#declare dedo =
  cylinder{
    <0.00,0.00,0.00>,
    <0.00,0.50,0.00>,
    0.05
    texture{azul}
  }

#declare mao =
  union{
    sphere{
      <0.00,0.00,0.00>,
      0.2
      texture{verde}
    }
    #if (clock <= 0.40)
      object{dedo scale 0.8 rotate 90*x rotate (2.5)*(clock)*alfa_dedo*y translate 0.1*z}
      object{dedo rotate -(2.5)*(clock)*alfa_dedo*z translate <0.00,0.20,-0.10>}
      object{dedo rotate -(2.5)*(clock)*alfa_dedo*z translate <0.00,0.20, 0.10>}
   #else
      object{dedo scale 0.8 rotate 90*x rotate alfa_dedo*y translate 0.1*z}
      object{dedo rotate -alfa_dedo*z translate <0.00,0.20,-0.10>}
      object{dedo rotate -alfa_dedo*z translate <0.00,0.20, 0.10>}
   #end

  }

#declare antebraco =
  union{
    cylinder{
      <0.00,0.00,0.00>,
      <0.00,2.00,0.00>,
      0.1
      texture{azul}
    }
    sphere{
      <0.00,0.00,0.00>,
      0.15
      texture{verde}
    }

    #if(clock <= 0.40)
      object{mao rotate alfa_mao*2.50*(0.4-clock)*x  translate 2*y}
    #else
      #if (clock <=0.50)
      object{mao translate 2*y}
      #else
      object{mao translate 2*y}
      #end
    #end
 }

#declare braco =
  union{
    cylinder{
      <0.00,0.00,0.00>,
      <0.00,2.00,0.00>,
      0.1
      texture{azul}
    }
    #if(clock <= 0.40)
      object{antebraco rotate alfa_antebraco*2.5*(0.4-clock)*x translate 2*y}
    #else
      #if (clock <=0.50)
        object{antebraco translate 2*y}
      #else
        object{antebraco rotate 1.5*alfa_antebraco*2.0*(clock-0.5)*x translate 2*y}
      #end
    #end
  }

#declare ombro =
  union{
    difference{
      sphere{
        <0.00,0.00,0.00>,
        0.40
        texture{preto}
      }
      box{
        <-0.50,-0.50,0.00>
        < 0.50, 0.50,-0.50>
        texture{preto}
      }
    }
      #if(clock <= 0.40)
        object{braco rotate 30*2.50*(0.40-clock)*z rotate alfa_braco*2.5*(0.4-clock)*x translate <0.00,0.10,0.10>}
      #else
        #if (clock <= 0.50)
          object{braco translate <0.00,0.10,0.10>}
        #else

          object{braco translate <0.00,0.10,0.10>}
        #end
      #end
  }

#declare corpo =
  union{
    cylinder{
      <0.00,0.00,0.00>,
      <0.00,0.00,2.50>,
      0.70
      texture{azul}
    }
    cylinder{
      <0.00,0.00,2.50>,
      <0.00,0.00,2.80>,
      0.20
      texture{preto}
    }
    sphere{
      <0.00,0.00,3.15>,
      0.70
      texture{azul}
    }
    object{ombro translate <-0.70,0.00,2.30> }
    object{ombro scale <-1.00,1.00,1.00> translate < 0.70,0.00,2.30> }
  }

#declare bandido =
  union{
    cylinder{
      <0.00,0.00,0.00>,
      <0.00,0.00,3.00>,
      0.50
      texture{preto}
    }
    cylinder{
      <0.00,0.00,2.50>,
      <0.00,0.00,2.80>,
      0.51
      texture{vermelho}
    }
  }

sky_sphere{
  pigment {color rgb <1,1,1>}
  scale 2
  translate -1
}

union{
  object{corpo}
  object{fundo}
  #if(clock <= 0.5)
    object{bandido translate 4*y}
  #else
    object{bandido translate <0.00,2.00,-2.80> rotate 1.5*alfa_antebraco*2.00*(clock-0.50)*x translate <0.00,2.00,2.80>}
  #end
}

#include "camlight.inc"
camlight(<0,3,2>,<15,4,1>,1.00,z,1.0)