// Last edited on 2003-06-28 12:35:34 by stolfi #include "colors.inc" #include "stones.inc" #include "textures.inc" #declare ctr = < 0, -2, 0 >; #declare cam = <10,6,30>; camera { location ctr + 2.5*cam right -1.2*x up 0.9*y look_at ctr } light_source { ctr + 100*(vrotate(cam + 15*y, 30*y)) color 1.2*White } light_source { ctr + 100*(vrotate(cam + 5*y, -60*y)) color 0.8*White } light_source { ctr + 100*(vrotate(cam + 3*y, -5*y)) color 0.4*White } background{Gray70} #declare chao = box { <-30,-10.2,-30>, <+30,-10,+30> pigment { hexagon White, Orange, Gray90 } } #declare CheckerAluminum = texture { pigment { checker Gray70, Cyan } finish { diffuse 0.5 reflection 0.4 specular 0.1 roughness 0.001 ambient 0 } } #declare CheckerBrass = texture { pigment { checker Orange, Yellow } finish { diffuse 0.5 reflection 0.4 specular 0.1 roughness 0.001 ambient 0 } } #declare parte1= union{ torus{5,3 texture{CheckerAluminum} } cylinder{<0,0,0>,<0,12,0>,2 texture{CheckerAluminum}} rotate <90,115,0> translate <-20,12,-4> } #declare parte2= union{ difference{ box{<6,3,2>,<14,12,14> texture{CheckerBrass}} cylinder{<10,8,1>,<10,8,15>,2 texture{CheckerBrass}} } cylinder{<10,4,8>,<10,-1,8>,3 texture{CheckerBrass}} rotate <0,-30,0> translate<5,8,0> } #declare parte3= difference{ box{<-2,-6,0>,<18,0,8> pigment {Orange} } cylinder{<8,1,2.5>,<8,-7,2.5>,3 pigment {Orange}} } #if (clock<0.4) #declare mov1=<(clock*80),0,(clock*120)>; #declare rot = (clock+2)*y; #declare rot1=0*y; // acrescentado por stolfi #declare mov2=0*z; // acrescentado por stolfi #else #if (clock<0.6) #declare mov1=<0,0,0>; #declare rot = 0*y; #declare rot1=0*y; #declare mov2= 50*(clock-0.5)*z; #else #declare mov1=<0,0,0>; #declare rot = 0*y; #declare rot1=360*(clock/0.2)*y; #declare mov2=-22*(clock+1)*y; #end #end #declare junta=union{object{parte1 rotate rot translate mov1} object{parte2} } object{junta rotate rot1 translate mov2} object{parte3} object{chao}