// Last edited on 2005-01-05 22:59:03 by stolfi // Processed by remove-cam-lights background{ color rgb < 0.80, 0.80, 1.00> } #declare preto = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.8 specular 0.9 roughness 0.015 ambient 0.4 } } #declare verde = texture { pigment { color rgb < 0.20, 0.80, 0.20 > } finish { diffuse 0.5 specular 0.0 roughness 0.05 ambient 0.1 } } #declare azul = texture { pigment { color rgb < 0.60, 0.60, 1.00 > } finish { diffuse 0.5 specular 0.0 roughness 0.05 ambient 0.1 } } #declare branco = texture { pigment { color rgb < 1.00, 1.00, 1.00 > } finish { diffuse 0.7 specular 0.3 roughness 0.00005 ambient 0.1 } } #declare cinza = texture { pigment { color rgb < 0.70, 0.70, 0.70 > } finish { diffuse 0.6 specular 0.4 roughness 0.5 ambient 0.1 } } #declare amarelo = texture { pigment { color rgb < 1.0,1.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare fundo = plane{<0,0,1>, 0 texture{ pigment {checker <0.80, 0.80, 0.00>,<1.00, 1.00,0.00> } finish {ambient 0.1 diffuse 0.9 } } } #declare roda_locomotiva = cylinder{ < 0.10, 0.00, 0.00>, <-0.10, 0.00, 0.00>, 1.00 texture {cinza} } #declare locomotiva = union{ lathe { linear_spline 4 <1.00, 0.00>, <1.25, 0.50>, <1.25,1.00>, <1.00, 1.50> texture {branco} rotate 90*x translate<0.00,2.00,4.00> } box { < 1.25, 0.00, 2.50>, < -1.25, 1.00, 0.75> texture {amarelo} } box { < 1.50, 1.00, 0.75>, < -1.50, 6.00, 2.75> texture {verde} } difference{ box { < 1.25, 3.50, 2.75>, < -1.25, 5.75, 3.75> texture {verde} } box{ < 3.00, 3.75, 2.76>, < -3.00, 5.50, 3.49> texture {verde} } } cylinder{ < 0.00, 2.00, 2.75>, < 0.00, 2.00, 4.00>, 1.00 texture {branco} } union{ roda_locomotiva translate<1.50,2.00,1.00> } union{ roda_locomotiva translate<1.50,5.00,1.00> } union{ roda_locomotiva translate<-1.50,2.00,1.00> } union{ roda_locomotiva translate<-1.50,5.00,1.00> } } #declare roda_vagao = cylinder{ < 0.15, 0.00, 0.00>, < -0.15, 0.00, 0.00>, 0.75 texture {preto} } #declare janela_vagao = box{ < 3.00, 1.00, 1.00>, < -3.00, 0.00, 0.00> texture {branco} } #declare gerador = seed (12324343577); #declare vagao = difference{ union{ box{ < 1.50, 1.00, 0.75>, < -1.50, 9.50, 3.25> } box{ < 0.25, 0.00, 0.75>, < -0.25, 1.00, 1.00> texture {azul} } #declare i = 0; #while (i < 4) object{roda_vagao translate < 1.5,i*2.00 + 2.00 ,0.75>} object{roda_vagao translate < -1.5,i*2.00 + 2.00 ,0.75>} #declare i = i+1; #end } #declare i = 0; #while (i < 4) object{janela_vagao translate<0,i*2 + 2.00,2.00>} #declare i = i+1; #end } #declare trilhos_externos = union{ difference{ cylinder{ < 75.00, 0.00, 0.00>, < 75.00, 0.00, 0.25>, 75.00 texture {cinza} } cylinder{ < 75.00, 0.00, -0.01>, < 75.00, 0.00, 0.26>, 74.75 } box{ < 0.15, -0.01,-0.01>, < 149.75, 101.00, 0.30> } } } #declare trilhos_internos = union{ difference{ cylinder{ < 75.00, 0.00, 0.00>, < 75.00, 0.00, 0.25>, 73.50 texture {cinza} } cylinder{ < 75.00, 0.00, -0.01>, < 75.00, 0.00, 0.26>, 73.35 } box{ < 1.65, -0.01,-0.01>, < 149.60, 101.00, 0.30> } } } #declare estacao = box{ <0.00,0.00,0.00> <5.00,10.00,4.00> texture {branco} } union { object {fundo} union{ #declare teta = -2*pi*(1-clock); object {locomotiva rotate (180+teta*180/pi)*z translate<75*cos(teta) + 75.00,75*sin(teta),0.00>} #declare i = 0; #while (i < 10) object {vagao pigment{color rgb } rotate (180+(teta-(0.127*i))*180/pi)*z translate <75*cos(teta-(0.127*i)) + 75.00,75*sin(teta -(0.127*i)),0.00>} #declare i = i + 1; #end translate <1.00,0.00,0.00> } object {trilhos_externos} object {trilhos_internos} object {trilhos_externos rotate 180*z translate <150.00, 0.00, 0.00>} object {trilhos_internos rotate 180*z translate <150.00, 0.00, 0.00>} object {estacao translate<144.00,3.00,0.00>} } #include "camlight.inc" camlight(<70,0,-20>,<-130,80,55>,1.00,z,1.0)