// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2009-03-09 18:44:03 by stolfi

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

#declare camera1 = camera {
  location  <  0.00, 0, -20.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, 0>  // Para onde a câmera está apontando.
} 
#declare camera2 = camera {
  location  <  3.00, 0 , 50.00 >  // Posição do observador.
   right     -0.75*x                // Largura RELATIVA da imagem.
  up        1.00*y                 // Altura RELATIVA da imagem.      
  look_at   <  3.00, 0, 0>  // Para onde a câmera está apontando.
} 
camera { camera2 }
// 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 * < -5, -1, +10.0 >             // Posição da lâmpada.
  color rgb 0.8 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 
light_source {
  10 * < 0, 0, -20.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 tinta_A = 
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare tinta_B = 
  texture {
    pigment { color rgb < 1.00, 0.80, 0.10 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

 
/* falante e parte do cano*/
#declare corpo_falante =
lathe {
    linear_spline
    4,
     <0,0>, <1,0>, <1,3>,<3,4>

   
  }

/*Cano mais comprido*/    
#declare corpo =
lathe {
    linear_spline
    3,
     <0,0>, <1,0>, <1,7>  
  }   

#declare juncao =
sphere {<0,0,0>,1 }   


#declare interior_caixa =
prism {
linear_spline
  0, 1, 6,
  <-5.5,-2>,<-5.5,-1.3>, <5.5,-1.3>,<6.0,-4>,<6,-2>,<-4.5,-2>
 
 
}
#declare interior_caixa1 =
prism {
linear_spline
  0, 1, 5,
  <6,-4>,<8,-4>, <8,-3.3>,<6.0,-3.3>,<6,-4>
 
 
}
#declare interior_caixa2 =
prism {
linear_spline
  0, 1, 5,
  <7.5,-4>,<8,-4>, <8,0>,<7.5,0>,<7.5,-4>
 
 
}
#declare moldura_caixa_parte_superior=
 union{object{interior_caixa texture {tinta_A}}
object{interior_caixa1 texture {tinta_A}}
object{interior_caixa2 texture {tinta_A}}}
#declare interior_caixa3 =
prism {
linear_spline
  0, 1, 6,
  <-2.5,-2>,<-2.5,-1.3>, <5.5,-1.3>,<6.0,-4>,<6,-2>,<-2.5,-2>
 
 
}
#declare moldura_caixa_parte_interior_superior=
 union{
 object{interior_caixa3 texture {tinta_A}}
object{interior_caixa1 texture {tinta_A}}
object{interior_caixa2 texture {tinta_A}}
}
#declare moldura_caixa_parte_interior_lateral_inferior=
prism {
linear_spline
  0, 1, 7,
  <-2.5,-1.8>, <-2.5,-5.5>, <11,-5.5>, <11,-4.8>, <-1.2,-4.8>, <-1.2,-1.8>, <-2.5,-1.8>
 
 
}

#declare moldura_caixa_parte_exterior_lateral_inferior=
prism {
linear_spline
  0, 1, 7,
  <-6.5,2>, <-6.5,-9.0>, <11,-9.0>, <11,-8.2>, <-5.5,-8.2>, <-5.5,2>, <-6.5,2>
 
 
}  
#declare moldura_caixa_parte_exterior_lateral_bocal=
prism {
linear_spline
  0, 1, 5,
  <10.5,-9>, <11.5,-9>, <11.5,-4.8>, <10.5,-4.8>, <10.5,-9>
 
 
}  

#declare maleta =
prism {
   linear_sweep
    linear_spline
    0, // varre a forma daqui ...
    1, // ... ate aqui
    10, // numero de pontos que constitue o prima ...
  <0,0>, <6,0>, <6,8>, <0,8>, <0,0>,  //curva de fora
  <1,1>, <5,1>, <5,7>, <1,7>, <1,1>   //curva de dentro
}

union{
object{corpo_falante texture {tinta_B} rotate <0,0,-90>translate<3,0,0>} 
object{corpo texture {tinta_B} rotate <0,0,-90> translate<-4,0,0>}
object{corpo texture {tinta_B} translate<-4,-7,0>}
object{juncao texture {tinta_B} translate<-4,0,0>}
object{corpo texture {tinta_B} rotate <0,0,-90> translate<-4,-7,0>}
object{juncao texture {tinta_B} translate<-4,-7,0>}
object{corpo texture {tinta_B} rotate <0,0,-90> translate<3,-7,0>}
object{moldura_caixa_parte_superior texture {tinta_B} rotate <90,0,0> }
object{moldura_caixa_parte_interior_superior texture {tinta_B} rotate <270,0,0> translate <0,0,1>}
object{moldura_caixa_parte_interior_lateral_inferior texture {tinta_A} rotate<-90,0,0> translate <0,0,1>}
object{moldura_caixa_parte_exterior_lateral_inferior texture {tinta_A} rotate<-90,0,0> translate <0,0,1>}
object{moldura_caixa_parte_exterior_lateral_bocal texture {tinta_A} rotate<-90,0,0> translate <0,0,1>}
object{maleta texture {tinta_A} rotate<-90,0,0> scale <5,2.3,1> translate <-12.5,-11.8,1>}
}