// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-07-31 12:50:37 by stolfi

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

camera {
  location  < 10, 2, 60 >  // Posição do observador.
  right     -1.0*x                 // Largura RELATIVA da imagem.
  up        0.75*y                 // Altura RELATIVA da imagem.      
  sky       y                      // 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, +35.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, 50.0, 50.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 < 1, 1, 1 > }

#declare raio = 2.000;

#declare prata = <0.8, 0.8, 0.8>;

#declare ouro = < 1, 0.8, 0 >;

#declare chao = 
plane {
<0,1,0>,-1
 texture {
 pigment { rgb prata }
 finish {
 ambient 0.05 diffuse 0.05 
  reflection prata
  specular 0.4 roughness 0.05
}
} 
}

#declare fundo = 
plane {
<0,0,1>,-100
texture {
pigment {checker color rgb <1,1,1>, color rgb <0.7,0.7,0.7>}
}
}

#macro disco(raioMaior, raioMenor)
torus {
 raioMaior, raioMenor
 texture {
  pigment { rgb <1,1,1> filter 1 }
  finish {
   diffuse 0.1
   reflection 0.25
   specular 1 roughness 0.001
  }
  }
 interior {
   ior 1.5
  }
}
#end

/*#declare torreTransparente = 
 cylinder {
  <0,0,0>,
  <0,20,0>,
  2
 texture {
  pigment { rgb ouro filter 1 }
  finish {
   diffuse 0.1
   reflection 0.25
   specular 1 roughness 0.001
  }
  }
 interior {
   ior 1.5
  }
}
*/

#declare torre = 
 cylinder {
  <0,0,0>,
  <0,20,0>,
  2
 texture {
 pigment { rgb ouro  }
 finish {
  ambient 0.05 diffuse 0.05 
  reflection ouro
  specular 0.2 roughness 0.05
 }	
}
}

object { disco(3,1) translate <15,0,0>}
object { torre translate <15,0,0>}
object { disco(5,1)}
object { disco(4,1) translate <0,2,0>}
object { torre }
object { disco(7,1) translate <-15,0,0>}
object { disco(6,1) translate <-15,2,0>}
object { disco(5,1) translate <-15,4,0>}
object { torre translate <-15,0,0>}
object { chao }
//object { fundo }