// MC930 - POV-Ray, Exercicio 1
// Fabio de Souza Azevedo - RA 952215 

// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-02-27 09:55:59 by stolfi


background{ color rgb < 0.00, 0.03, 0.15 > }

light_source {
  < 4.00, 10.00, -50.00 >
  color rgb < 1.00, 1.00, 1.00 >
} 

camera {
  //location  <  8.00, 4.00, 2.00 >
  location <0.0, 0.0, -20.00>
  right     < -1.20, 0.00, 0.00 >
  up        <  0.00, 0.00, 0.90 >
  //sky       <  0.00, 0.00, 1.00 >
  sky       <  0.00, 1.00, 0.00 >
  look_at   <  0.00, 0.00, 0.00 >
} 

// ----- Cores do Fabio

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

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

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

#declare laranja =
  texture {
    pigment { color rgb < 1.96, 1.0, 0.4 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

  
// ----- Objetos do Fabio

#declare caixa1 = 
box {
    <-7, -5,  -7>,  // Near lower left corner
    < 7, -4,  7>   // Far upper right corner
    texture { verde }
  }

#declare caixa2 = 
box {
    <-2.5, -4, -2.5>,  // Near lower left corner
    < 2.5, 1,  2.5>   // Far upper right corner
    texture { marrom }
    rotate y*45
  }

#declare cone1 =
cone {
    <0, 1, 0>, 1.5    // Center and radius of one end
    <0, 4, 0>, 0.5    // Center and radius of other end
    texture { amarelo }
  }

#declare cone2 =
cone {
    <0, 4, 0>, 0.5    // Center and radius of one end
    <0, 4.75, 0>, 1.5    // Center and radius of other end
    texture { amarelo }
  }

#declare bola1 =
  sphere {
    < 0.00, 5.5, 0.00 >, 1.0 
    texture { laranja }
  }

#declare cilindro1 =
  cylinder {
    < 0.00, 5.5, 0.00 >,
    < -3.00, 6.0, 0.00 >,
    0.3
    texture { amarelo }
  }
    
#declare cilindro2 =
  cylinder {
    < 0.00, 5.5, 0.00 >,
    < +3.00, 6.0, 0.00 >,
    0.3
    texture { amarelo }
  }

#declare bola2 =
  sphere {
    < -3.00, 6.0, 0.00 >, 1.0 
    texture { laranja }
  }

#declare bola3 =
  sphere {
    < +3.00, 6.0, 0.00 >, 1.0 
    texture { laranja }
  }

// Aqui está a cena, finalmente:

object {caixa1}
object {caixa2}
object {cone1}
object {cone2}
object {bola1}
object {cilindro1}
object {cilindro2}
object {bola2}
object {bola3}