// Last edited on 2009-07-24 13:31:05 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare textura1 = texture { pigment { color rgb < 0.9, 0.9, 0.9 > filter 0} finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #macro folha() union { difference { object { sphere{ <3 ,0 ,0>,2 texture {textura1} } } object { sphere{ <3 ,0 ,0>,1 texture {textura1} } } object { box { <-5,0,-5>, <5,4,5> texture { textura1 } } } } object { box { <0,0,-1>, <2,-1,1> texture { textura1 } } } } #end #macro B1(alfa) #declare tamanhobraco=4; union { object { cylinder { < 0, 0, 0 >, < tamanhobraco, 0, 0 >, 1 texture {textura1} } } object { cylinder { < 0, 0, -1 >, < 0, 0, 1 >, 1 texture {textura1} } translate } object{ folha() rotate<0,0,alfa> translate } } #end #macro B2(alfa,beta) #declare tamanhobraco=4; union { object { cylinder { < 0, 0, 0 >, < tamanhobraco, 0, 0 >, 1 texture {textura1} } } object { cylinder { < 0, 0, -1 >, < 0, 0, 1 >, 1 texture {textura1} } translate } object{ B1(alfa) rotate<0,0,beta> translate } } #end #macro B3(alfa,beta,gama) #declare tamanhobraco=3; union { difference { object { cylinder { < 0, 0, -4 >, < 0, 0, 4 >, tamanhobraco texture {textura1} } } object { cylinder { < 0, 0, -10 >, < 0, 0, 10 >, tamanhobraco-1 texture {textura1} } } } object{ B2(alfa,beta) translate } rotate<0,0,gama> } #end #macro B4(alfa,beta,gama,delta) #declare tamanhobraco=10; union { object { cylinder { < 0, 0, -tamanhobraco >, < 0, 0, tamanhobraco >, 1 texture {textura1} } } object { B3(alfa,beta,gama) translate<0,0,delta> } difference { object { cylinder { < -2, 0, tamanhobraco+8 >, < 2, 0, tamanhobraco+8 >, 3 texture {textura1} } } object { cylinder { < -6, 0, tamanhobraco+8 >, < 6, 0, tamanhobraco+8 >, 2 texture {textura1} } } } difference { object { cylinder { < -2, 0, -tamanhobraco-8 >, < 2, 0, -tamanhobraco-8 >, 3 texture {textura1} } } object { cylinder { < -6, 0, -tamanhobraco-8 >, < 6, 0, -tamanhobraco-8 >, 2 texture {textura1} } } } } #end #macro B5(alfa,beta,gama,delta,teta) #declare distanciabraco=11; #declare tamanhobraco=10; union { object { cylinder { < -tamanhobraco, 0, -distanciabraco >, < tamanhobraco, 0, -distanciabraco >, 1 texture {textura1} } } object { cylinder { < -tamanhobraco, 0, distanciabraco >, < tamanhobraco, 0, distanciabraco >, 1 texture {textura1} } } object { cylinder { < -tamanhobraco+1,0,-distanciabraco >, < -tamanhobraco+1,-4,-distanciabraco> 1 texture {textura1} } } object { cylinder { < tamanhobraco-1,0,-distanciabraco >, < tamanhobraco-1,-4,-distanciabraco> 1 texture {textura1} } } object { cylinder { < -tamanhobraco+1,0,distanciabraco >, < -tamanhobraco+1,-4,distanciabraco> 1 texture {textura1} } } object { cylinder { < tamanhobraco-1,0,distanciabraco >, < tamanhobraco-1,-4,distanciabraco> 1 texture {textura1} } } object { B4(alfa,beta,gama,delta) translate } } #end #declare alfa=45; #declare beta=40; #declare gama=10; #declare delta=2; #declare teta=4; object { B5(alfa,beta,gama,delta,teta) translate<+15,0,0> } #declare alfa=35; #declare beta=10; #declare gama=90; #declare delta=1; #declare teta=-5; object { B5(alfa,beta,gama,delta,teta) translate<-15,0,0> } // Original camera parameters: // #local cam_ctr = <6.00,0.00,0.00> // #local cam_vec = (<5,35,45>-<6.00,0.00,0.00>) // #local cam_sky = (1*y) #include "camlight.inc" camlight(<0.00,0.00,0.00>,<-10,5,10>,70.0,y,1.0)