// Last edited on 2007-04-03 19:34:11 by stolfi
// Processed by remove-cam-lights

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

#declare raio = 2.000;

#declare tinta_A = 
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > }
    finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 }
  }

#declare tinta_B = 
  texture {
    pigment { color rgb < 1.00, 0.80, 0.10 > }
    finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 }
  }

#declare tinta_C = 
  texture {
    pigment { color rgb < 0.10, 0.30, 0.90 > }
    finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 }
  }

#declare caixa1 = 
  box {
    < 0.00, 0.00, 0.00 >,
    < 2.00, 2.00, 2.00 >
    texture { tinta_A }
} 

#declare caixa2 = 
  box {
    < 0.10, 0.10, 0.10 >,
    < 1.90, 1.90, 1.90 >
    texture { tinta_A }
} 
  
#declare bola1 =
  sphere {
    < 0.00, 0.00, 0.00 >, 1.50 
    texture { tinta_A }
  }

#declare bola2 =
  sphere {
    < 0.00, 0.00, 0.00 >, 1.90 
    texture { tinta_B }
  }

#declare bola3 =
  sphere {
    < 0.00, 0.00, 0.00 >, 2.30 
    texture { tinta_C }
  }

#declare cilindro1 =
  cylinder {
    < -1.00, -2.00, -2.00 >,
    < +1.00, +2.00, +2.00 >,
    1.00
    texture { tinta_C }
  }

#declare cilindro1_furo = 
  cylinder {
    < -2.00, -4.00, -4.00 >,
    < +2.00, +4.00, +4.00 >,
    0.90
    texture { tinta_C }
  }

#declare cubo1 = 
  box {
    < 0.00, -2.00, -2.00 >,
    < 2.00, 2.00, 2.00 >
    texture { tinta_B }
}
  
#declare furo1 = 
  cylinder {
    < -1.00, -2.00, -2.00 >,
    < +1.00, +2.00, +2.00 >,
    1.00
    texture { tinta_B }
  }

#declare furo2 = 
  cylinder {
    < -1.00, -2.00, -2.00 >,
    < +1.00, +2.00, +2.00 >,
    1.50
    texture { tinta_B }
  }

#declare furo3 = 
  cylinder {
    < -1.00, -2.00, -2.00 >,
    < +1.00, +2.00, +2.00 >,
    2.00
    texture { tinta_B }
  }
  
#declare pino = 
  cylinder {
    < -2.00, +2.00, -1.00 >,
    < +2.00, -2.00, +1.00 >,
    0.75
    texture { tinta_B }
  }

union {
 difference {
  object { cilindro1 }
  object { cilindro1_furo }
 }
 difference {
  object { bola1 }
  object { furo1 }
 }
 difference {
  object { bola2 }
  object { furo2 }
 }
 difference {
  object { bola3 }
  object { furo3 }
 }
}

// Original camera parameters:
// #local cam_ctr = <0,0,0>
// #local cam_vec = <8.00,0.00,8.00>
// #local cam_sky = z

#include "camlight.inc"
camlight(<0,0,0>,<10,5,10>,8,z,1.0)