// Aula 2 - 21/09/2004 - Bigorna dobravel
// Andre Vinicius Buzzo - Ra: 001356

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

camera {
  location  <  10, 15, 10 >  // Posição do observador.
  right     -1.00*x                // Largura RELATIVA da imagem.
  up        0.75*y                 // Altura RELATIVA da imagem.      
  sky       z                      // Qual direção é "para cima"?
  look_at   <  0, 0, 0 >  // Para onde a câmera está apontando.
  rotate 270*x
 } 
// 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 {
  1 * < 10, 10.0, -50.0 >              // Posição da lâmpada.
  color rgb 1.5 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
}

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


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

plane {z,0
  texture {
    pigment { checker <1,1,1>, <0,0,0> }
    finish {ambient 0.1 diffuse 0.9}
    scale 4
  }
  translate <0,0,10>
  rotate 45*x
}

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

#declare raio = 2.000;

#declare amarelo = <0.9,0.9,0>;

#declare azul = <0.5,0.5,1>;

#declare tx_azul =
  texture { 
    finish {
      ambient 0.1 diffuse 0.1 reflection 0.25
      specular 1 roughness 0.001
    }
    pigment {color azul filter 1}
  }

#declare tx_espelho =
  texture {
    pigment {rgb amarelo}
    finish {
      ambient 0.05 diffuse 0.05
      reflection amarelo
      specular 0.20 roughness 0.05
    }
  }

#declare tora =
  torus {
    4, 1
    texture {tx_espelho}
  }

#declare latex =
  lathe {
    linear_spline
    6,
    <0,0>, <0.5,0.5>, <1.5,1>, <1,1.5>, <1,2>, <0,2>
    texture { tx_azul }
    interior { ior 1.0 }
    rotate 180*z
  }

union {
 object { latex   translate <0,3,4> }
 object { latex   translate <0,3,-4> }
 object { latex   translate <4,3,0> }
 object { latex   translate <-4,3,0> }
 object { latex   translate <2.8,3,2.8> }
 object { latex   translate <-2.8,3,2.8> }
 object { latex   translate <2.8,3,-2.8> }
 object { latex   translate <-2.8,3,-2.8> }
 object { tora}
}