// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "eixos.inc" #include "texturas.inc" #include "camlight.inc" #macro interpola(ta, va, tb, vb, tt) #local s=(tt-ta)/(tb-ta); ((1-s)*va+s*vb); #end #declare chao = box{ <-20,-20,-3>, <+20,+20,0> } #declare corpo= box{<0,0,0>,<.5,1,2> texture{branco}} #declare coxa= box{<0,0,0>,<.5,.5,1> texture{branco}} #declare canela= box{<0,0,0>,<.5,.5,1> texture{branco}} #declare pe= box{<0,0,0>,<.5,1,.5> texture{branco}} #declare bloco= box{<0,0,0>,<3,5,2> texture{tx_fosca} translate<-1.5,-1.5,0>} #macro canela_pe(a) object{pe translate<0,0,-.5> rotate<-90+a,0,0> translate<0,.5,.5>} object{canela translate<0,0,.5> } #end #macro CCP(beta,a)//canela, coxa, pé object{ union{canela_pe(a)} translate<0,0,-1.5> rotate<-beta,0,0> translate<0,0,1.5> } object{coxa translate<0,0,1.5> } #end #macro tudo(alfa,beta,a) object{ union{CCP(beta,a)} translate<0,-.5,-2.5> rotate translate<0,.5,2.5> } object{corpo translate<0,-.5,2.5> } #end #macro armacao(fase) //vai de 0 até 1 #local fase0=0; #local fase1=.5; #local fase2=1; #if((fase>=fase0)&(fase<=fase1)) #declare alfa=interpola(fase0,45,fase1,90,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare alfa=interpola(fase1,90,fase2,45,fase); #end #if((fase>=fase0)&(fase<=fase1)) #declare beta=interpola(fase0,45,fase1,90,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare beta=interpola(fase1,90,fase2,45,fase); #end #if((fase>=fase0)&(fase<=fase1)) #declare a=interpola(fase0,90,fase1,90,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare a=interpola(fase1,90,fase2,90,fase); #end tudo(alfa,beta,a) #end//fim do macro armacao #macro voo(h,fase) #local fase0=0; #local fase1=.5; #local fase2=1; #if((fase>=fase0)&(fase<=fase1)) #declare alfa=interpola(fase0,45,fase1,0,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare alfa=interpola(fase1,0,fase2,45,fase); #end #if((fase>=fase0)&(fase<=fase1)) #declare beta=interpola(fase0,45,fase1,0,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare beta=interpola(fase1,0,fase2,45,fase); #end #if((fase>=fase0)&(fase<=fase1)) #declare a=interpola(fase0,90,fase1,45,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare a=interpola(fase1,45,fase2,90,fase); #end #if((fase>=fase0)&(fase<=fase1)) #declare altura=interpola(fase0,0,fase1,h,fase); #end #if((fase>=fase1)&(fase<=fase2)) #declare altura=interpola(fase1,h,fase2,0,fase); #end union{ tudo(alfa,beta,a) translate<0,0,altura> } #end //final do macro voo #macro voo_geral(h,p,q,fase) #local r=interpola(0,p,1,q,fase); union{voo(h,fase) translate r } #end //fim voo_geral #macro armacao_geral(p,fase) union{armacao(fase) translate p } #end//fim armacao_geral #macro quadro(tempo) #local t0=0.00; #local t1=0.25; #local t2=0.50; #local t3=0.75; #local t4=1.00; #local A=<0,0,2>; #local B=<0,5,0>; #local C=<0,10,2>; object{bloco} object{bloco translate<0,10,0>} #if((tempo>=t0)&(tempo<=t1)) #local fase=interpola(t0,0,t1,1,tempo); object{armacao_geral(A,fase)} #declare centro_cena = A; #end #if((tempo>=t1)&(tempo<=t2)) #local fase=interpola(t1,0,t2,1,tempo); object{voo_geral(4,A,B,fase)} #declare centro_cena = interpola(t1,A,t2,B,tempo); #end #if((tempo>=t2)&(tempo<=t3)) #local fase=interpola(t2,0,t3,1,tempo); object{armacao_geral(B,fase)} #declare centro_cena = B; #end #if((tempo>=t3)&(tempo<=t4)) #local fase=interpola(t3,0,t4,1,tempo); object{voo_geral(4,B,C,fase)} #declare centro_cena = interpola(t3,B,t4,C,tempo); #end #declare raio_cena = 6.0; #declare dir_camera = < 7.00, 0.00, 10.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz) #end//fim do macro total quadro(clock)