// Last edited on 2007-07-23 10:30:09 by stolfi
// Processed by remove-cam-lights

global_settings { max_trace_level 12 }

#declare tinta_xadrez =
  texture {
    pigment { checker color rgb <0.40,0.50,0.60>, color rgb <0.90,0.95,1.00> }
    finish { ambient 0.6 diffuse 0.4 }
  }

background{ color rgb < 0.75, 0.80, 0.85 > }

#declare azul =
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > filter 1.0}
    finish { diffuse 0.4 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.2 }
  }

#declare verde =
  texture {
    pigment { color rgb < 0,1, 0 > }
    finish { diffuse 0.2 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.4 }
  }

#declare prata =
  texture {
 pigment { color rgb < 0.80, 0.80, 0.80 > }
 finish { diffuse 0.2 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.4 }
  }

#declare esmeralda =
  texture {
    pigment { color rgb < 0, 1, 0 > filter 1.0}
    finish { diffuse 0.4 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.2 }
  }

#declare preto =
  texture {
 pigment { color rgb < 0.2, 0.2, 0.2 > }
 finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare branco =
  texture {
 pigment { color rgb < 1, 1, 1 > }
 finish { diffuse 0 specular 0 roughness 0.005 ambient 1 }
  }

#declare rubi =
  texture {
    pigment { color rgb < 1.0, 0.0, 0.0 > filter 1.0}
    finish { diffuse 0.4 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.2 }
  }

#declare olho =
 union{
  sphere {
   <0,0,0>, 1
   texture {branco}
   }
  sphere {
   <0,0,0>, 0.5
   texture {preto}
   scale <1,0.5,1>
   translate <0,0.85,0>
   }
  }

#macro pe()
 union{
  sphere {
   <0,0,0>, 3
   texture {verde}
   scale <0.15,0.15,1>
   translate <0,0,-3>
   }
 }
#end

#macro canela (tornozelo)
 union{
  sphere {
   <0,0,0>, 4
   texture {verde}
   scale <0.2,0.2,1>
   translate <0,0,-4>
   }
  object { pe()
   rotate tornozelo*x
   translate <0,0,-8>
   }
 }
#end

#macro perna (joelho,tornozelo)
 union{
  sphere{
   <0,0,0>, 4
   texture {verde}
   scale <0.2,0.2,1>
   translate <0,0,-4>
  }
  object{ canela(tornozelo)
     rotate -joelho*x
     translate <0,0,-8>
     }
 }
#end

#macro antebraco()
 sphere {
  <0,0,0>, 2
  texture {verde}
  scale <0.15,0.15,1>
  translate <0,0,-2>
  }

#end

#macro braco (cotovelo)
 union{
  sphere{
   <0,0,0>, 2
   texture {verde}
   scale <0.2,0.2,1>
   translate <0,0,-2>
  }
  object{ antebraco()
     rotate cotovelo*x
     translate <0,0,-4>
     }
 }
#end

#macro corpo(xx,yy,zz,coxaxd,coxazd,coxaxe,coxaze,joelhod,joelhoe,tornozelod,tornozeloe,ombroxd,ombrozd,ombroxe,ombroze,cotovelod,cotoveloe)
 union{
  difference{
   sphere {
    <xx,yy,zz>, 5
    texture { verde }
    }
   box {
    <xx-5,yy-5,zz-2>,
    <xx+5,yy+5,zz-6>
    texture {verde}
    }
   }
  intersection{
   difference{
    sphere {
     <xx,yy,zz+0.3>, 5.5
     texture { rubi }
     }
    sphere {
     <xx,yy,zz+0.3>, 5.3
     texture { rubi }
     }
   }
   box {
    <xx-6,yy+2,zz>,
    <xx+6,yy-6,zz+6>
    texture {rubi}
   }
  }
  object { olho
     translate <xx+3,yy+3,zz+3>
     }
  object { olho
     translate <xx-3,yy+3,zz+3>
     }
  object { perna(joelhod,tornozelod)
     rotate coxaxd*x
     rotate -coxazd*z
     translate <xx+3,yy-3,zz>
     }
  object { perna(joelhoe,tornozeloe)
     rotate coxaxe*x
     rotate coxaze*z
     translate <xx-3,yy-3,zz>
     }
  object { braco(cotovelod)
     rotate -ombroxd*x
     rotate -ombrozd*y
     translate <xx+4,yy+3,zz>
     }
  object { braco(cotoveloe)
     rotate -ombroxe*x
     rotate ombroze*y
     translate <xx-4,yy+3,zz>
     }
 }
#end

plane{z,0
 translate -1*z
 texture { tinta_xadrez }
}

corpo(0,0,10,70,30,70,30,160,160,160,160,0,30,0,30,150,150)

// Original camera parameters:
// #local cam_ctr = <0,1,10>
// #local cam_vec = (<15,15,15>-<0,1,10>)
// #local cam_sky = z

#include "camlight.inc"
camlight(<0,1,10>,<10,7,2>,20.0,z,1.0)