// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.5, 0.5, 0.5 > } #declare corpo1 = box { < 0.4,0,0.1 >, < -0.4,2.5,-0.1 > texture { pigment { color rgb < 0.05, 0.15, 0.8 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } } #declare dente1 = cone { < 0,2.5,0>, 0.1 < 0,3.5,0>, 0 texture { pigment { color rgb < 0.05, 0.15, 0.8 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } } #macro garfo () union { object { corpo1 } object { dente1 } object { dente1 translate < 0.3,0,0 > } object { dente1 translate < -0.3,0,0 > } } #end #declare haste1 = cylinder { < 0,0,0 > < 0,2.5,0 > 0.1 } #declare artic = sphere { < 0,0,0 > 0.1 texture { pigment { color rgb < 0.05, 0.15, 0.8 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } } #macro objeto1 (alfa1) union { object { haste1 } object { artic translate < 0,2.6,0 > } object { garfo() rotate < alfa1,0,0 > translate < 0,2.7,0 > } } #end #declare corpo2 = box { < 0.2,0,0.1 >, < -0.2,-2.5,-0.1 > texture { pigment { color rgb < 0.05, 0.15, 0.8 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } } #declare dente2 = cone { < 0.2,-2.3,0.1 >, 0.1 < 0.5,-2.3,0.1 >, 0 texture { pigment { color rgb < 0.05, 0.15, 0.8 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } } #macro faca () union { object { corpo2 } object { dente2 } object { dente2 translate < 0,0.2,0 > } object { dente2 translate < 0,0.4,0 > } object { dente2 translate < 0,0.6,0 > } object { dente2 translate < 0,0.8,0 > } } #end #macro objeto2 (alfa2) union { object { faca () rotate < alfa2, 0, 0 > translate < 0,-2.7,0 > } object { artic translate < 0,-2.6,0 > } object { haste1 translate < 0,-2.5,0 > } } #end #declare principal = sphere { < 0,0,0 > 0.1 } #macro talher (alfa, gama, epsilon, psi) union { object { principal } object { objeto1 (alfa) translate < 0,0.1,0 > rotate < epsilon,0,0 >} object { objeto2 (gama) translate < 0,-0.1,0 > rotate < psi,0,0 >} } #end #declare c0 = 0.000; #declare c1 = 0.200; #declare c2 = 0.400; #declare c3 = 0.600; #declare c4 = 0.800; #declare c5 = 1.000; #declare nh = 3; #declare nv = 3; #declare nquadros = nh*nv; #declare cini = 0.0; #declare cfin = 1.0; #declare cpasso = (cfin-cini)/(nv-2.875); #macro essamacro(ck) union { #if ((ck >= c0) & (ck < c1)) #declare rr = (ck-c0)/(c1-c0); #declare ss = (c1-ck)/(c1-c0); #declare alfa1=ss*0 + rr*15; #declare gama1=ss*0 + rr*15; #declare epsilon1=0; #declare psi1=0; #end #if ((ck >= c1) & (ck < c2)) #declare rr = (ck-c1)/(c2-c1); #declare ss = (c2-ck)/(c2-c1); #declare alfa1=ss*15 + rr*30; #declare gama1=ss*15 + rr*30; #declare epsilon1=ss*0 + rr*15; #declare psi1=ss*0 + rr*15; #end #if ((ck >= c2) & (ck < c3)) #declare rr = (ck-c2)/(c3-c2); #declare ss = (c3-ck)/(c3-c2); #declare alfa1=ss*30 + rr*15; #declare gama1=ss*30 + rr*15; #declare epsilon1=ss*15 + rr*0; #declare psi1=ss*15 + rr*0; #end #if ((ck >= c3) & (ck < c4)) #declare rr = (ck-c3)/(c4-c3); #declare ss = (c4-ck)/(c4-c3); #declare alfa1=ss*15 + rr*0; #declare gama1=ss*15 + rr*0; #declare epsilon1=0; #declare psi1=0; #end #if ((ck >= c4) & (ck < c5)) #declare rr = (ck-c4)/(c5-c4); #declare ss = (c5-ck)/(c5-c4); #declare alfa1=ss*0 + rr*(-15); #declare gama1=ss*0 + rr*(-15); #declare epsilo1=0; #declare psi1=0; #end #if (ck = c5) #declare rr = (ck-c5)/(c6-c5); #declare ss = (c6-ck)/(c6-c5); #declare alfa1=ss*(-15) + rr*(-30); #declare gama1=ss*(-15) + rr*(-30); #declare epsilon1=ss*0 + rr*(-15); #declare psi1=ss*0 + rr*(-15); #end object { talher(alfa1, gama1, epsilon1, psi1) } } #end union { object { essamacro(clock) } } // Original camera parameters: // #local cam_ctr = <0.00,0.00,12.5> // #local cam_vec = (<15,0,0>-<0.00,0.00,12.5>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,0.00,12.5>,<10,10,10>,20.0,z,1.0)