// Aluno: Roberto Barboza Braz     RA 035711

// ======================================================================
// CÂMERA 


camera {
  location  <  6.00, 5.00, 6.00 >  // Posição do observador.
  right     -0.75*x                // Largura RELATIVA da imagem.
  up        1.00*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, 0.00, 0.00 >  // Para onde a câmera está apontando.
} 

/*
camera {
  location  <  6.00, 0.00, 6.00 >  // Posição do observador.
 // right     -0.75*x                // Largura RELATIVA da imagem.
 // up        1.00*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0.00, 0.00, 0.00 >  // Para onde a câmera está apontando.
} 

*/
// Nota: os parâmetros "right" e "up" devem ter a mesma proporção
// que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile.

// ======================================================================
// FONTES DE LUZ

light_source {
  10 * < +50.0, +30.0, +50.0 >              // Posição da lâmpada.
  color rgb 1.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
  10 * < +50.0, -10.0, +10.0 >             // Posição da lâmpada.
  color rgb 0.8 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

// ======================================================================
// DESCRIÇÃO DA CENA 

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

#declare raio = 2.000;

#declare tinta_vermelho = 
  texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > }
    //finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_azul = 
  texture {
    pigment { color rgb < 0.00, 0.00, 1.00 > }
    //finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }   
  
#declare tinta_preto = 
  texture {
    pigment { color rgb < 0.00, 0.00, 0.00 > }
    //finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }
  
#declare bola =
  sphere {
    < 0.00, +0.00, +0.00 >, 0.67 
    texture { tinta_azul }
  }
  
#declare cabo = 
  cylinder {
    < 0.00, +0.00, +0.00 >,
    < 0.00, +2.00, +2.00 >,
    0.70
    texture { tinta_preto }
  }
  
#declare caixa = 
  box {
    < -0.50, -0.80, -1.50 >,
    < +0.50, +0.20, -0.50 >
    texture { tinta_vermelho }
  }

#declare dentes = 
  cone {
    < 0.00, -0.58, -1.50 >,
    0.20,      
    < 0.00, -0.58, -3.00 >,
    0.00
    texture { tinta_vermelho }
  }   
   
 
// Aqui está a cena, finalmente:

  union {
     difference {
     difference {
     object { cabo }
     object { bola
         translate < 0.00, 2.00, 2.00 > } 
     }
     object { bola
              texture { tinta_vermelho } } 
     }
     object { bola }
     object { caixa }
     object { dentes } 
     

  object { dentes
           translate < 0.00, 0.55, 0.00 >
         }
  object { dentes
           translate < +0.25, 0.55, 0.00 >
         }
 object { dentes
           translate < +0.25, 0.00, 0.00 >
         }       
    }