// Fernando Kenji Iwai ra 001714 Laboratorio 1
// 

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

camera {
  location  2* <  8.00, 4.00, 2.00 >  // Posição do observador.
  right     -1.0*x                 // Largura RELATIVA da imagem.
  up        0.75*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 azul = 
  texture {
    pigment { color rgb < 0.0, 0.00, 1.00 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

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

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

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

#declare caixa =
  box {
    <2.00, -3.00, -4.00>,
    < -2.00, 3.00, -1.00>
    texture { azul}
  }

#declare prisma = 
   prism {

  linear_spline

  -3, 3, 3,
  <2,-4>,<3,-4>,<2,-1>
  texture {vermelho}
  }

  
#declare braco_direito = 
  cylinder {
    < -2.00, -2, 0.00 >,
    < 2.00, -2, -0.25 >,
    0.75
    texture { verde }
  }
  

  
#declare braco_esquerdo = 
  cylinder {
    < -2.00, 2, 0.00 >,
    < 2.00, 2, -0.25 >,
    0.75
    texture { verde }
  }
  


#declare encosto = 
   torus {
    2.50,
    1.00
    rotate <0,0,90>
    translate<-2.5,0,0>
    texture { amarelo }
  }
  
// Aqui está a cena, finalmente:


  union {
    object { caixa } 
    object { prisma}
    object { braco_direito}	 
    object { braco_esquerdo}
    object { encosto }		
 }