// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "colors.inc" global_settings { assumed_gamma 1.0 } sky_sphere { pigment { gradient y color_map { [0.0 rgb <0.6,0.7,1.0>] [0.7 rgb <0.0,0.1,0.8>] } } } #declare azul = texture { pigment { color rgb < 0.20, 0.50, 1.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare verde = texture { pigment { color rgb < 0.00, 1.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare amarelo = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare azulclaro = texture { pigment { color rgb < 0.00, 1.00, 1.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare liga= cylinder { < 5, 10.0, 7 >, < 5, 10.0, 15.0 >, 0.6 texture { azulclaro } } #declare enfeite = union{ box { <-0.2,-1.5,-0.05 >, <0.2,1.5, 0.05> pigment { Red } } } #declare roda = union{ cylinder { < 0, 10.0, -10.0 >, < 0, 10.0, -10.5 >, 1.7 pigment { Green } } object {enfeite rotate 180*clock*z translate <0,10,-10.55>} object {enfeite rotate 180*clock*z translate <0,10,-9.55>} } #declare rodas = union { #declare i=0; #while (i<4) #declare r=4.5*i; object{roda translate } #declare i = i+1; #end } #declare jan= box{ <5.5,15,-10.5>, <0.5,12,-11> texture { azulclaro } } #declare gerador = seed(52754); #declare janelac = union { #declare i=0; #while (i<5) #declare r=3*i; #declare aleatorio = rand(gerador); #declare treco = #if (aleatorio<0.5) cylinder { < r, 10.0, -10.0 >, < r, 10.0, -10.5 >, 1.0 pigment { Yellow } } #else cylinder { < r, 10.0, -10.0 >, < r, 10.0, -10.5 >, 0.5 pigment { Red } } #end object{treco} #declare i = i+1; #end } #declare janelaq = union { #declare i=0; #while (i<5) #declare r=3*i; #declare aleatorio = rand(gerador); #declare treco = #if (aleatorio<0.5) box{ , pigment { Green } } #else box{ , pigment { Magenta } } #end object{treco} #declare i = i+1; #end } #declare frente1= box { < -10.00, 2.0, -10 >, < 0.00, 12.00, 0.00 > pigment { Blue } } #declare frente2= box { < 3.00, 2.0, -10 >, < 10.00, 7.00, 0.00 > pigment { Blue } } #declare vagao= box { < -10.00, 2.0, -10 >, < 10.00, 12.00, 0.00 > pigment { Blue } } #declare gerador2 = seed(654321); #declare aleatorio2 = rand(gerador2); #declare completo = #if (aleatorio2<0.5) union{ object {vagao} object{janelac translate<-6.8,0,0>} object{janelaq translate<-6.8,-5,10.5>} object {rodas translate<-6.8,-8,0>} object {rodas translate<-6.8,-8,10.5>} object {vagao} object{liga translate<-10,-4,3> rotate -90*y} #else union{ object {vagao} object{janelaq translate<-6.8,-5,0>} object{janelac translate<-6.8,0,10.5>} object {rodas translate<-6.8,-8,0>} object {rodas translate<-6.8,-8,10.5>} object {vagao} object{liga translate<-10,-4,3> rotate -90*y} #end } #declare trilhoext= cylinder { < 0, 0, 0 >, < 0, 0.5, 0 >, 55 texture { amarelo } } #declare trilhoextaux= cylinder { < 0, -0.1, 0 >, < 0, 0.6, 0 >, 54 texture { azulclaro } } #declare trilhoint= cylinder { < 0, 0.0, 0 >, < 0, 0.5, 0 >, 45 texture { amarelo } } #declare trilhointaux= cylinder { < 0, -0.1, 0 >, < 0, 0.6, 0 >, 44 texture { azulclaro } } #declare frente= union{ object{frente1 translate<-13,0,0>} object{frente2 translate<-33,0,0>} object {rodas translate<-28,-8,0>} object {rodas translate<-28,-8,10.5>} object {jan translate<-21,-4,0>} object {jan translate<-21,-4,10.6>} } #declare trem = union { #declare cont = 0; #while(cont<5) #declare r = 30*cont; object{completo translate<0,0,-45> rotate r*y } #declare cont = cont + 1; #end object {frente translate<20,0,-45> rotate 145*y } } #declare tempo=clock; #declare h=0.2; #declare D=360; #declare A=D/(2*h*(1-h)); #declare B=-A*h*h; #declare C=2*A*h; plane { y, -1 pigment { color rgb <0.7,0.5,0.3> } } union{ difference{ object {trilhoext} object {trilhoextaux} } difference{ object {trilhoint} object {trilhointaux} } } #if (tempo<0.2) object {trem rotate A*clock*clock*y} #else #if (tempo<0.8) object {trem rotate (B+C*clock)*y} #else object {trem rotate (D-A*(1-clock)*(1-clock))*y} #end #end #include "camlight.inc" camlight(<0,0,0>,vrotate(<0,30,-150.00>,150*y),1.00,y,1.0)