// Last edited on 2007-07-23 20:42:40 by stolfi // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tinta_A = texture { pigment { color rgb < 0.10, 0.80, 0.2 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_B = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare esfera= sphere { < 0,0,0 >, 1 } #declare cilindro= cylinder { < 0,0,0 >, < 0,0,1 >, 1 } #declare espada= cylinder { < 0,0,0 >, < 2,0,0 >, 0.2 } #declare MovMao = 90*clock; #macro Mao() union{ object { esfera scale <0.4, 0.3, 0.2> texture{tinta_A} } object{ espada rotate<0,MovMao,0> texture{tinta_B} } } #end #macro Pe() object { esfera scale <0.4, 0.3, 0.2> texture{tinta_A} } #end #macro Antebraco(modo) union { object { cilindro scale <0.25, 0.2, 1> translate -1*z texture{tinta_A} } object { #if(modo = 1) Pe() #else Mao() #end translate <0.1, 0, -1> } } #end #macro BracoFrente(RotAnt,modo) union { object { Antebraco(modo) #if(RotAnt > 40) #declare RotAnt = 40; #end #if(RotAnt < -20) #declare RotAnt = -40; #end rotate (-70 + RotAnt)*y translate -1*z } union { object { cilindro scale <0.25, 0.25, 1> translate -1*z texture{tinta_A} } object { esfera scale 0.27 translate -1*z texture{tinta_A} } } rotate 10*y } #end #macro BracoTras(BraTra) union { union { object { BracoFrente(-30,1) rotate (50 + BraTra)*y } object { esfera scale 0.3 texture{tinta_A} } translate <1, 0, 0> } object { cilindro scale <0.29, 0.29, 1> rotate 90*y texture{tinta_A} } object { esfera scale 0.32 texture{tinta_A} } rotate 50*y } #end #macro Cabeca(Sim, Nao) object { esfera scale <0.8, 0.7, 0.6> rotate translate <1.9, 0, 0.6> texture{tinta_A} } #end #macro Corpo(AnteFreDi, AnteFreEs, AnteTraDi, AnteTraEs, BraFreDiX, BraFreDiY, BraFreEsX, BraFreEsY, BraTraDiX, BraTraDiY, BraTraEsX, BraTraEsY) union { object { esfera scale <1.8, 1.8, 1> texture{tinta_A} } union { object { BracoFrente(AnteFreDi,0) rotate translate <1.2, 1.2, -0.3> } object { esfera scale 0.27 translate <1.2, 1.2, -0.3> texture{tinta_A} } } union { object { BracoFrente(AnteFreEs,0) rotate translate <1.2, -1.2, -0.3> } object { esfera scale 0.27 translate <1.2, -1.2, -0.3> texture{tinta_A} } } union { object { BracoTras(AnteTraEs) rotate translate <-0.6, 1.7, -0.3> } object { BracoTras(AnteTraDi) rotate translate <-0.6, -1.7, -0.3> } } } #end #macro Tudo(a,b,c,d,e,f,g,h,i,j,k,l,m,n) union { object { Corpo(a,b,c,d,e,f,g,h,i,j,k,l) } object { Cabeca(m,n) } } #end #declare a = 0; #declare b = 0; #declare c = 0; #declare d = 0; #declare e = 0; #declare f = 0; #declare g = 0; #declare h = 0; #declare i = 0; #declare j = 0; #declare k = 0; #declare l = 0; #declare m = 0; #declare n = 0; #declare acaoRotateZ = 90 * clock; #declare acaoRotateY = clock*(-60); #declare acaoABTraseiroDireito = clock*(-180); #declare acaoBTraseiroDireito = clock*90; #declare acaoBTraseiroEsquerdo = clock*60; #declare acaoBFrenteDireito = clock*90; #declare acaoBFrenteEsquerdo = clock*(-30); #declare acaoOmbroFrenteEsquerdo = clock*(-90); #declare acaoCabecaSim = clock*(90); object { Tudo(acaoBFrenteDireito,b,acaoABTraseiroDireito,acaoABTraseiroDireito,e,f,acaoOmbroFrenteEsquerdo,h,i,acaoBTraseiroDireito,k,acaoBTraseiroEsquerdo,acaoCabecaSim,n) rotate <0, acaoRotateY, acaoRotateZ> } // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_vec = vrotate(<5.00,7.00,0.00>,20*z) // #local cam_sky = z #include "camlight.inc" camlight(<0,1,0>,<10,10,10>,12.0,z,1.0)