// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2010-03-04 15:44:01 by stolfi
// ======================================================================
// CORES E TEXTURAS
#include "colors.inc"
#include "textures.inc"
#include "woods.inc"
#include "stones.inc"
background{ color rgb < 1, 1, 1 > }
#declare tx = texture{
pigment { color Blue }
finish { phong 1 }
}
#declare tx_chao =
texture{
pigment{ color rgb < 0.00, 0.00, 0.00 > }
finish{ diffuse 0.9 ambient 0.1 }
}
// aviao para elefantes
// 6 retalhos de bezier (3 retalhos - metade do objeto - e reflete outro igual)
// juntas suaves:
// local A14 = (A13 + B12)/2, B11 = A14
// ======================================================================
// DESCRIÇÃO DA CENA
// Partes da cena:
#declare chao =
box{ <-20,-20,-1>, <+20,+20,0>}
#include "retalho.inc"
#declare lateral =
union {
#local base = 0;
#local alt = 0.25;
#local larg = 0.8;
#local prof = 0.25;
#declare altura = alt*3;
#declare larguraLateral = base+larg*3;
#local p21 = ;
#local p22 = ;
#local p23 = ;
#local p24 = ;
#local p11 = < base, (p21.y+(-p21.y))/2, 0>;
#local p12 = ;
#local p13 = ;
#local p14 = ;
#local p31 = ;
#local p32 = ;
#local p33 = ;
#local p34 = ;
#local p41 = ;
#local p42 = ;
#local p43 = ;
#local p44 = ;
object{retalho(p11,p12,p13,p14,p21,p22,p23,p24,
p31,p32,p33,p34,p41,p42,p43,p44,
0.005,tx,tx)}
}
#declare bico =
union {
#local base = 0;
#local alt = 0.25;
#local larg = 0.2;
#local prof = 0.25;
#local incrAlt = 0.2;
#local meioAltura = altura/2;
#local p21 = ;
#local p22 = ;
#local p23 = ;
#local p24 = ;
#local p11 = < base, 0, meioAltura>;
#local p12 = ;
#local p13 = ;
#local p14 = ;
#local p31 = ;
#local p32 = ;
#local p33 = ;
#local p34 = ;
#local p41 = ;
#local p42 = ;
#local p43 = ;
#local p44 = ;
#declare alturaBico = p44.z;
#declare larguraBico = p44.x;
object{retalho(p11,p12,p13,p14,p21,p22,p23,p24,
p31,p32,p33,p34,p41,p42,p43,p44,
0.005,tx,tx)}
}
#declare asa =
box{ , }
#declare aviao =
union {
object {lateral translate x*larguraBico}
object {lateral rotate 180*z translate (larguraLateral+larguraBico)*x}
object {bico}
object {bico scale <1,-1,1>}
}
#include "eixos.inc"
// Aqui está a cena, finalmente:
union{
object{ eixos(3.00) }
object{ chao texture{Silver_Metal}}
object{ aviao texture{tx}}
object{ asa texture{tx}}
object{ asa texture{tx} scale<1,-1,1>}
}
#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.00 >;
#declare raio_cena = 3.0;
#declare dir_camera = < -1, 1, 1 >;
#declare dist_camera = 3.0;
#declare intens_luz = 2.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)