// Last edited on 2005-01-05 22:35:37 by stolfi // Processed by remove-cam-lights #declare ouro = texture { pigment { rgb < 1.00, 1.00, 0.60> } finish { ambient 0.05 diffuse 0.05 reflection < 1.00, 1.00, 0.60> specular 0.2 roughness 0.05 } } #declare aco = texture { pigment { rgb < 1.0, 0.60, 0.60> } finish { diffuse 0.05 } } #declare bras = texture { pigment { rgb < 0.90, 0.90, 0.90> } finish { diffuse 0.05 } } #declare aco_1 = texture { pigment { rgb < 1.0, 0.0, 0.0> } finish { diffuse 0.05 } } #declare aco_2 = texture { pigment { rgb < 1.0, 1.00, 0.0> } finish { diffuse 0.05 } } #declare vagao_1 = difference { union { box { <3, -1, 0>, <-3, 1, 3> texture { aco } } cylinder { <3, 0, 3>, <-3, 0, 3>, 1.0 texture { aco_1 } } #declare i = 0; #while(i < 4) cylinder { <2 - 1.25*i, -1, -0.4>, <2 - 1.25*i, 1, -0.4>, 0.40 texture { aco } } #declare i = i + 1; #end } box { <3, -0.8, -1>, <-3, 0.8, 0> texture { aco } } #declare i = 0; #while(i < 4) box { <2.9 - i*1.5, -1.1, 1.5>, <1.6 - i*1.5, 1.1, 2.9> texture { aco } } #declare i = i + 1; #end box { <2.9, -0.9, 0.1>, <-2.9, 0.9, 3> texture { aco } } cylinder { <2.9, 0, 3>, <-2.9, 0, 3>, 0.90 texture { aco } } } #declare vagao_2 = difference { union { box { <3, -1, 0>, <-3, 1, 3> texture { aco } } cylinder { <3, 0, 3>, <-3, 0, 3>, 1.0 texture { aco_2 } } #declare i = 0; #while(i < 4) cylinder { <2 - 1.25*i, -1, -0.4>, <2 - 1.25*i, 1, -0.4>, 0.40 texture { aco } } #declare i = i + 1; #end } #declare i = 0; #while(i < 4) box { <2.9 - i*1.5, -1.1, 1.5>, <1.6 - i*1.5, 1.1, 2.9> texture { aco } } #declare i = i + 1; #end box { <2.9, -0.9, 0.1>, <-2.9, 0.9, 3> texture { aco } } cylinder { <2.9, 0, 3>, <-2.9, 0, 3>, 0.90 texture { aco } } } #declare locomotiva = union { difference { object { vagao_1 } box { <3.1, -1.1, 1>, <0, 1.1, 5> texture { aco } } } cylinder { <3, 0, 1>, <0, 0, 1>, 1.0 texture { aco } } cone { <2.5, 0, 1>, 0.0 <2.5, 0, 3>, 0.4 texture { aco } } #declare gerador = seed(12345); #declare i = 0; #while(i < 200) sphere { <2.5 + 0.04*i*0.4*rand(gerador), 0 + 0.04*i*0.4*rand(gerador), 3 + 2.5*rand(gerador)>, 0.05 texture { ouro } } #declare i = i + 1; #end } #declare trilhos = difference { difference { cylinder { <0, 1000, -1>, <0, 1000, -0.9>, 1001 } cylinder { <0, 1000, -1.1>, <0, 1000, -0.8>, 999 } } difference { cylinder { <0, 1000, -1.1>, <0, 1000, -0.8>, 1000.8 } cylinder { <0, 1000, -1.1>, <0, 1000, -0.8>, 999.2 } } } #declare estacao = union { box { <0.5, -0.5, 0>, <-0.5, 0.5, 10> texture { bras } translate -1*y } box { <0.5, -0.5, 0>, <-0.5, 0.5, 10> texture { bras } translate 1*y } difference { sphere { <5, 0, 10>, 10 texture { aco } } box { <100, -100, 0.5>, <-100, 100, 100> texture { bras } } } difference { sphere { <-7, 0, -10.3 >, 10 texture { bras } } } } background{ color rgb <0.75, 0.80, 1.0> } union { object { trilhos } object { estacao translate -10*y } object { locomotiva translate 6.5*x } #declare gerador = seed(12345); #declare i = 0; #declare qtd = 4 + 3*rand(gerador); #while(i < qtd) #declare delta = -6.5*i; #declare ang = delta; #if(2*rand(gerador) > 1) object { vagao_1 rotate 0.001*ang*z translate delta*x translate -sin(ang)*y } #else object { vagao_2 rotate 0.001*ang*z translate delta*x translate -sin(ang)*y } #end #declare i = i + 1; #end } plane { z, -0.9 pigment { rgb < 0.20, 0.50, 0.20> } finish { ambient 0.05 diffuse 0.2 specular 0.02 roughness 0.5 } } #include "camlight.inc" camlight(<0,0,0>,<30.00,30.00,15.00>,1.00,z,1.0)