// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #include "eixos.inc" #include "textures.inc" #include "retalho.inc" #declare tx_azul = texture{ pigment{ color rgb < 0.10, 0.80, 0.90 > } finish{ diffuse 0.9 ambient 0.5 specular 0.5 roughness 0.005 } } #declare txg = texture{ pigment{ color rgb < 0, 1, 0 > } } # declare txr = texture{ tx_azul } #declare rad = 0.00001; #local a12 = <1, 0, 0.5>; #local a13 = <2, 0, 0.5>; #local a14 = <3, 0, 2>; #local a22 = <1, -1, 0.5>; #local a23 = <2, -1, 0.5>; #local a24 = <3, -1, 2>; #local a32 = <1, -2, 1.5>; #local a33 = <2, -2, 1.5>; #local a34 = <3, -2, 1.5>; #local b11 = <0, 0, 0>; #local b12 = <1, 0, 0>; #local b13 = <2, 0, 0>; #local b14 = <3, 0, 0>; #local b21 = <0, -1, 0.2>; #local b22 = <1, -1, 0.2>; #local b23 = <2, -1, 0.2>; #local b24 = <3, -1, 0.2>; #local b31 = <0, -2, 0.5>; #local b32 = <1, -2, 0.5>; #local b33 = <2, -2, 0.5>; #local b34 = <3, -2, 0.5>; #local c11 = <-3, 0, 2>; #local c12 = <-2, 0, 2>; #local c13 = <-1, 0, 0.5>; #local c21 = <-3, -1, 2>; #local c22 = <-2, -1, 2>; #local c23 = <-1, -1, 0.5>; #local c31 = <-3, -2, 1.5>; #local c32 = <-2, -2, 1.5>; #local c33 = <-1, -2, 1.5>; #local d11 = <-3, 0, 0>; #local d12 = <-2, 0, 0>; #local d13 = <-1, 0, 0>; #local d21 = <-3, -1, 0.2>; #local d22 = <-2, -1, 0.2>; #local d23 = <-1, -1, 0.2>; #local d31 = <-3, -2, 0.5>; #local d32 = <-2, -2, 0.5>; #local d33 = <-1, -2, 0.5>; #macro aviao(a12, a13, a14, a22, a23, a24, a32, a33, a34, b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, c11, c12, c13, c21, c22, c23, c31, c32, c33, d11, d12, d13, d21, d22, d23, d31, d32, d33) #declare a11 = (a12 + c13)/2; #declare a21 = (a22 + c23)/2; #declare a31 = (a32 + c33)/2; #declare c14 = a11; #declare c24 = a21; #declare c34 = a31; #declare a41 = (a31+b31)/2; #declare a42 = (a32+b32)/2; #declare a43 = (a33+b33)/2; #declare a44 = (a34+b34)/2; #declare b41 = a41; #declare b42 = a42; #declare b43 = a43; #declare b44 = a44; #declare c41 = (c31+d31)/2; #declare c42 = (c32+d32)/2; #declare c43 = (c33+d33)/2; #declare c44 = a41; #declare d41 = c41; #declare d42 = c42; #declare d43 = c43; #declare d44 = c44; #declare a41 = (a42 + c43)/2; #declare d34 = b31; #declare d24 = b21; #declare d14 = b11; #declare f11 = a14; #declare f12 = a24; #declare f13 = a34; #declare f14 = a44; #declare f41 = b14; #declare f42 = b24; #declare f43 = b34; #declare f44 = b44; #declare f24 = (f14 + f44)/2; #declare f34 = (f14 + f44)/2; #declare f31 = (f11 + f41)/2; #declare f32 = (f12 + f42)/2; #declare f33 = (f13 + f43)/2; #declare f23 = (f13 + f43)/2; #declare f21 = (f11 + f41)/2; #declare f22 = (f12 + f42)/2; #end #macro deform1(p) // Deform em X #end #macro deform2(p) // Deform em X e Y #end #macro aviao_deform(a12, a13, a14, a22, a23, a24, a32, a33, a34, b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, c11, c12, c13, c21, c22, c23, c31, c32, c33, d11, d12, d13, d21, d22, d23, d31, d32, d33, def1, def2) #local a12 = a12 + deform1(a12)*def1 + deform2(a12)*def2; #local a13 = a13 + deform1(a13)*def1 + deform2(a13)*def2; #local a14 = a14 + deform1(a14)*def1 + deform2(a14)*def2; #local a22 = a22 + deform1(a22)*def1 + deform2(a22)*def2; #local a23 = a23 + deform1(a23)*def1 + deform2(a23)*def2; #local a24 = a24 + deform1(a24)*def1 + deform2(a24)*def2; #local a32 = a32 + deform1(a32)*def1 + deform2(a32)*def2; #local a33 = a33 + deform1(a33)*def1 + deform2(a33)*def2; #local a34 = a34 + deform1(a34)*def1 + deform2(a34)*def2; #local b11 = b11 + deform1(b11)*def1 + deform2(b11)*def2; #local b12 = b12 + deform1(b12)*def1 + deform2(b12)*def2; #local b13 = b13 + deform1(b13)*def1 + deform2(b13)*def2; #local b14 = b14 + deform1(b14)*def1 + deform2(b14)*def2; #local b21 = b21 + deform1(b21)*def1 + deform2(b21)*def2; #local b22 = b22 + deform1(b22)*def1 + deform2(b22)*def2; #local b23 = b23 + deform1(b23)*def1 + deform2(b23)*def2; #local b24 = b24 + deform1(b24)*def1 + deform2(b24)*def2; #local b31 = b31 + deform1(b31)*def1 + deform2(b31)*def2; #local b32 = b32 + deform1(b32)*def1 + deform2(b32)*def2; #local b33 = b33 + deform1(b33)*def1 + deform2(b33)*def2; #local b34 = b34 + deform1(b34)*def1 + deform2(b34)*def2; #local c11 = c11 + deform1(c11)*def1 + deform2(c11)*def2; #local c12 = c12 + deform1(c12)*def1 + deform2(c12)*def2; #local c13 = c13 + deform1(c13)*def1 + deform2(c13)*def2; #local c21 = c21 + deform1(c21)*def1 + deform2(c21)*def2; #local c22 = c22 + deform1(c22)*def1 + deform2(c22)*def2; #local c23 = c23 + deform1(c23)*def1 + deform2(c23)*def2; #local c31 = c31 + deform1(c31)*def1 + deform2(c31)*def2; #local c32 = c32 + deform1(c32)*def1 + deform2(c32)*def2; #local c33 = c33 + deform1(c33)*def1 + deform2(c33)*def2; #local d11 = d11 + deform1(d11)*def1 + deform2(d11)*def2; #local d12 = d12 + deform1(d12)*def1 + deform2(d12)*def2; #local d13 = d13 + deform1(d13)*def1 + deform2(d13)*def2; #local d21 = d21 + deform1(d21)*def1 + deform2(d21)*def2; #local d22 = d22 + deform1(d22)*def1 + deform2(d22)*def2; #local d23 = d23 + deform1(d23)*def1 + deform2(d23)*def2; #local d31 = d31 + deform1(d31)*def1 + deform2(d31)*def2; #local d32 = d32 + deform1(d32)*def1 + deform2(d32)*def2; #local d33 = d33 + deform1(d33)*def1 + deform2(d33)*def2; aviao(a12, a13, a14, a22, a23, a24, a32, a33, a34, b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, c11, c12, c13, c21, c22, c23, c31, c32, c33, d11, d12, d13, d21, d22, d23, d31, d32, d33) #end #macro gera() #declare planoF = object{ retalho(f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, f41, f42, f43, f44, rad, txg, txr) } #declare plano1 = object{ retalho(a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44, rad, txg, txr) } #declare plano2 = object{ retalho(b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44, rad, txg, txr) } #declare plano3 = object{ retalho(c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34, c41, c42, c43, c44, rad, txg, txr) } #declare plano4 = object{ retalho(d11, d12, d13, d14, d21, d22, d23, d24, d31, d32, d33, d34, d41, d42, d43, d44, rad, txg, txr) } union{ object{plano1 texture{tx_azul}} object{plano2 texture{tx_azul}} object{plano3 texture{tx_azul}} object{plano4 texture{tx_azul}} object{plano1 texture{tx_azul} scale -y} object{plano2 texture{tx_azul} scale -y} object{plano3 texture{tx_azul} scale -y} object{plano4 texture{tx_azul} scale -y} object{planoF texture{tx_azul}} object{planoF texture{tx_azul} scale -y} object{planoF texture{tx_azul} scale -x} object{planoF texture{tx_azul} scale <-1, -1, 1>} box{<0, 0, 0>, <1, 4, 0.5> texture{tx_azul}} box{<0, 0, 0>, <1, 4, 0.5> texture{tx_azul} scale -y} } #end object{eixos(3)} aviao_deform(a12, a13, a14, a22, a23, a24, a32, a33, a34, b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, c11, c12, c13, c21, c22, c23, c31, c32, c33, d11, d12, d13, d21, d22, d23, d31, d32, d33, sin(clock*2*pi), cos(clock*2*pi)) //declara o aviao object{gera() translate <0, 0, 3*sin(clock*2*pi)> } // gera o aviao #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 15; #declare dir_camera = < 15.00, -10.00, 4.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)