#include "colors.inc" #include "shapes.inc" #include "textures.inc" #include "stones.inc" #include "metals.inc" #include "woods.inc" plane { <0, 1, 0>, -0.01 pigment { color rgb<1.15, 0.9, .22>} finish {crand 0.05 roughness 1000 } } #declare H0 = 1; #declare H1 = H0 + 9; #declare H2 = H1 + 10; #declare H3 = H2 + 8.75; #declare H4 = H3 + 5; #declare EleDpth = 9; #declare EleWdt = 12; #declare BotWdt = 11; #declare PitDpth = 16; #declare RmpWdt = 1.7*BotWdt; #declare MiddleRmp = 0.425; #declare Cement_Color = texture { pigment { color rgb<1.4, 1.27, .82>} finish {crand 0.05 roughness 10 } } #declare Dirt = texture { pigment {color rgb<.8, 0.7, .42>} normal { gradient x normal_map { [ 0.0 bumps 1 scale .01] } } } // Bottom Half and the Pit difference { union { box { <-BotWdt, H0, -EleDpth> < BotWdt, H1-.7, EleDpth> } triangle { <-BotWdt, H1-3, EleDpth>, <-BotWdt, H1, EleDpth>, <-BotWdt, H1-3, PitDpth+.2> } triangle { < BotWdt, H1-3, EleDpth> , , < BotWdt, H1-3, PitDpth+.2> } triangle { <-BotWdt-.2, H1, EleDpth>, , <-BotWdt-.2, H1-3.0, PitDpth+.3> } triangle { <-BotWdt-.2, H1-3.0, PitDpth+.3>, , < BotWdt+.2, H1-3.0, PitDpth+.3> } box { <-BotWdt, H0, EleDpth> } pigment {Green} finish {crand 0.02} } box { <-BotWdt-1, H0, EleDpth+1> pigment {Green}} } // Windows on the Pit #declare Index = BotWdt - ( BotWdt / 4 ); #while (Index > -BotWdt + ( BotWdt / 4 + BotWdt / 3) ) box { pigment { Yellow } finish { crand 0.05 reflection {.125} } } #declare Index = Index - ( BotWdt / 4 + BotWdt / 3); #end //Bottom Cement Foundation box { <-BotWdt+.1, 0, -EleDpth+.1> pigment {color rgb<1.3, 1.17, .72>} finish {crand 0.05 roughness 10 } } //Pipes Along the Ramp #declare Index = 1; #while ( Index <= 2 ) union { //Top Rail cylinder { <.99*RmpWdt, .45*H0+0.75, PitDpth-MiddleRmp> <1.01*BotWdt, 1.55*H0+0.75, PitDpth-MiddleRmp> .05 } //Poles of ++Z Ramp cylinder { <0.99*RmpWdt, 0, PitDpth - MiddleRmp> <0.99*RmpWdt, 0.45*H0+0.75, PitDpth - MiddleRmp> .05 } cylinder { <1.01*BotWdt, 0, PitDpth - MiddleRmp> <1.01*BotWdt, 1.55*H0+0.75, PitDpth - MiddleRmp> .05 } sphere { <.99*RmpWdt, .45*H0+0.75, PitDpth-MiddleRmp> .05 } sphere { <1.01*BotWdt, 1.55*H0+0.75, PitDpth - MiddleRmp> .05 } #declare Tangent = tanh(1.15/(RmpWdt-BotWdt)); #declare MidPole = (.99*RmpWdt + 1.01*BotWdt ) / 2; #declare MidHeight = tan(Tangent) * (MidPole)- .45; #declare SecondPole = (1.01*RmpWdt + MidPole) / 2; #declare FourthPole = (.99*BotWdt + MidPole ) / 2; #declare SecondHeight = tan(Tangent) * (FourthPole)- .45; #declare FourthHeight = tan(Tangent) * (SecondPole)- .45; cylinder { .05 } cylinder { .05 } cylinder { .05 } // Side of --Z Ramp cylinder { <.99*RmpWdt, 0, EleDpth + MiddleRmp> <.99*RmpWdt, .45*H0+0.75, EleDpth + MiddleRmp> .05 } cylinder { <1.01*BotWdt, 0, EleDpth+MiddleRmp> <1.01*BotWdt, 1.55*H0+0.75, EleDpth+MiddleRmp> .05 } cylinder { <.99*RmpWdt, .45*H0+0.75, EleDpth+MiddleRmp> <1.01*BotWdt, 1.55*H0+0.75, EleDpth+MiddleRmp> .05 } sphere { <.99*RmpWdt, .45*H0+0.75, EleDpth+MiddleRmp> .05 } sphere { <1.01*BotWdt, 1.55*H0+0.75, EleDpth + MiddleRmp> .05 } cylinder { .05 } cylinder { .05 } cylinder { .05 } pigment {White} } // Cement Ramps union { // Side of ++Z Ramp box { } triangle { , , } triangle { , , } // Top of ramp ++Z Ramp triangle { , , } triangle { , , } // Top of --Z Ramp triangle { , , } triangle { , , } // Side of --Z Ramp box { } triangle { , , } triangle { , , } pigment {color rgb<1.3, 1.17, .72>} finish {crand 0.05 roughness 10 } } // Dirt on the Ramp union { triangle { , , } triangle { , , } texture {Dirt} } #declare Index = Index + 1; #declare RmpWdt = RmpWdt * -1; #declare BotWdt = BotWdt * -1; #end // Pit Doors union { box { <-BotWdt+0.25, H0, EleDpth+1> pigment {White}} //Door #declare Index = EleDpth + ( .25*PitDpth / 4 ) +.25; #while (Index < PitDpth -1) box { <-BotWdt+0.20, H0+1.5, Index> pigment { Black } finish { reflection {.15} ambient 0 diffuse 0} } #declare Index = Index + ( .45*EleDpth / 4 + .25*EleDpth / 3); #end } // W+ Side of Reinforcement Pillars #declare PlrDpth = EleDpth - .2; #while (PlrDpth >= -EleDpth ) union { box { < BotWdt+.25, H0, PlrDpth - .2> } box { < BotWdt+.50, H1-2, PlrDpth - .2> } box { < EleWdt+0.001, H1-.5, PlrDpth-.2> } box { < EleWdt+0.001, H1-.5, PlrDpth-.2> } triangle { , , } triangle { , , } triangle { , , } triangle { , , } pigment {color rgb<1.3, 1.17, .72>} finish {crand 0.05 roughness 10 } } #declare PlrDpth = PlrDpth - ( ( EleDpth*2 - .4 ) / 5); #end // W- Side of Reinforcement Pillars #declare PlrDpth = EleDpth -.2 ; #while (PlrDpth >= -EleDpth ) union { box { < -BotWdt-.25, H0, PlrDpth-.2> <-BotWdt, H1-2, PlrDpth+.2> } box { < -BotWdt-.50, H1-2, PlrDpth-.2> <-BotWdt, H1, PlrDpth+.2> } box { < -EleWdt-0.001, H1-.5, PlrDpth-.2> <-EleWdt+.2, H2, PlrDpth+.2> } box { < -EleWdt-0.001, H1-.5, PlrDpth-.2> <-BotWdt, H1, PlrDpth+.2> } triangle { <-BotWdt - .5, H1-1, PlrDpth+.2 >, <-BotWdt - .5, H1-.5, PlrDpth+.2>, <-EleWdt, H1-.5, PlrDpth+.2> } triangle { <-BotWdt - .5, H1-1, PlrDpth-.2>, <-BotWdt - .5, H1-.5, PlrDpth-.2>, <-EleWdt, H1-.5, PlrDpth-.2> } triangle { <-BotWdt - .5, H1-1, PlrDpth-.2>, <-BotWdt - .5, H1- 1, PlrDpth+.2>, <-EleWdt, H1-.5, PlrDpth+.2> } triangle { <-EleWdt, H1-.5, PlrDpth+.2>, <-EleWdt, H1-.5, PlrDpth-.2>, <-BotWdt - .5, H1-1, PlrDpth-.2> } pigment {color rgb<1.3, 1.17, .72>} finish {crand 0.05 roughness 10 } } #declare PlrDpth = PlrDpth - ( ( EleDpth*2 - .4 ) / 5); #end //lines across the middle section union { box { <-BotWdt, H1-0.7, -EleDpth> < BotWdt, H1, -EleDpth+.2> } #declare PlrHt = H1+.05; #while (PlrHt <= H2 ) box { <-EleWdt-.01, PlrHt-.05, EleDpth+0.01> } #declare PlrHt = PlrHt + ( ( H2 - H1 - .1 ) / 4); #end // Small Lines Across The Middle #declare PlrHt = H1+.05; #while (PlrHt <= H2 ) box { <-EleWdt+0.01, PlrHt-.05, EleDpth+0.01> } #declare PlrHt = PlrHt + ( ( H2 - H1 - .1 ) / 8); #end pigment {color rgb<1.3, 1.17, .72>} finish {crand 0.05 roughness 10 } } // Lines Across the Width of the Middle Section #declare PlrWdt = -EleWdt+.2; #while (PlrWdt <= EleWdt ) box { pigment {color rgb<1.1, 0.97, .52>} finish {crand 0.05 roughness 10 } } #declare PlrWdt = PlrWdt + ( ( 2*EleWdt - .15 ) / 6); #end #declare FirstTriangle = -EleWdt+.15 + ( ( 2*EleWdt - .15 ) / 6); #declare SecondTriangle = -EleWdt+.15 + 2 * ( ( 2*EleWdt - .15 ) / 6); #declare FourthTriangle = -EleWdt+.15 + 4 * ( ( 2*EleWdt - .15 ) / 6); #declare FifthTriangle = -EleWdt+.15 + 5 * ( ( 2*EleWdt - .15 ) / 6); union { triangle{ , <0, H2 + 2* (H3-H2) / 3, EleDpth+.01>, } triangle{ , <0, H2 + 2* (H3-H2) / 3, -EleDpth-.01>, } pigment {color rgb<1.1, 0.97, .52>} finish {crand 0.05 roughness 10 } } union { triangle{ , <0, H2 + 2*(H3-H2) / 3-.15, EleDpth+.02>, } triangle{ , <0, H2 + 2*(H3-H2) / 3-.15, -EleDpth-.02>, } pigment {color rgb<1.4, 1.27, .82>} finish {crand 0.05 roughness 10 } } union { triangle { , <0, H2 + (H3-H2) / 3, EleDpth+.03>, } triangle { , <0, H2 + (H3-H2) / 3, -EleDpth-.03>, } pigment {color rgb<1.1, 0.97, .52>} finish {crand 0.05 roughness 10 } } //UpperHalf of Elevator union { triangle { <-EleWdt, H1, EleDpth>, <-EleWdt , H1, -EleDpth>, <-BotWdt, H1-.7, -EleDpth> } triangle { <-EleWdt, H1, EleDpth>, <-BotWdt, H1-.7, -EleDpth>, <-BotWdt, H1-.7, EleDpth> } triangle { , , } triangle { , , } triangle { , <1, H2, EleDpth>, <1, H3, EleDpth> } triangle { <-EleWdt, H2, EleDpth>, <-1, H2, EleDpth>, <-1, H3, EleDpth> } box { <1, H2, -EleDpth> <-1, H3, EleDpth> } triangle { , <1, H2, -EleDpth>, <1, H3, -EleDpth> } triangle { <-EleWdt, H2, -EleDpth>, <-1, H2, -EleDpth>, <-1, H3, -EleDpth> } texture { Cement_Color } // pigment {color rgb<1.4, 1.27, .82>} // finish {crand 0.05 roughness 10 } } box { <-EleWdt, H1, -EleDpth+0.01> < EleWdt, H2, EleDpth> texture { Cement_Color } } //pigment {color rgb<1.5, 1.37, .92> } finish {crand 0.05 roughness 100 } } //Green Roof union { triangle { , < EleWdt+.3, H2-.2, -EleDpth>, < 1, H3, -EleDpth> } triangle { , < 1, H3, -EleDpth>, < 1, H3, EleDpth> } triangle { <-EleWdt-.3, H2-.2, EleDpth>, <-EleWdt-.3, H2-.2, -EleDpth>, <-1, H3, -EleDpth> } triangle { <-EleWdt-.3, H2-.2, EleDpth>, <-1, H3, -EleDpth>, <-1, H3, EleDpth> } pigment { Green } finish {crand 0.02} } //Top of Elevator union { triangle { <1, H3, EleDpth>, <-1, H3, EleDpth>, <-1, H4, .25*EleDpth> } triangle { <1, H3, EleDpth>, < 1, H4, .25*EleDpth>, <-1, H4, .25*EleDpth> } triangle { <1, H3, -EleDpth>, <-1, H3, -EleDpth>, <-1, H4, -.25*EleDpth> } triangle { <1, H3, -EleDpth>, <1, H4, -.25*EleDpth>, <-1, H4, -.25*EleDpth> } triangle { <1, H3, EleDpth>, <1, H3, .25*EleDpth>, <1, H4, .25*EleDpth> } triangle { <1, H3, -EleDpth>, <1, H3, -.25*EleDpth>, <1, H4, -.25*EleDpth> } triangle { <-1, H3, EleDpth>, <-1, H3, .25*EleDpth>, <-1, H4, .25*EleDpth> } triangle { <-1, H3, -EleDpth>, <-1, H3, -.25*EleDpth>, <-1, H4, -.25*EleDpth> } pigment {Green } finish {crand 0.02} } // Agricore United Sign union { cylinder { 1.8 } cylinder { 1.8 } box { } cylinder { <-EleWdt - 0.70, (H2+H1)/2+0.8, 2.2> <-EleWdt - 0.64, (H2+H1)/2+0.8, 2.2> 1.8 } cylinder { <-EleWdt - 0.70, (H2+H1)/2+0.8, -2.2> <-EleWdt - 0.64, (H2+H1)/2+0.8, -2.2> 1.8 } box { <-EleWdt - 0.70, (H2+H1)/2+2.6, 2.2> <-EleWdt - 0.64, (H2+H1)/2-1, -2.2> } pigment {Blue} } difference { cylinder { <0, H4+1, -.25*EleDpth>, < 0, H4+1, .25*EleDpth>, 2 pigment { Green } } box { <-2, H4, -EleDpth> < 2, H4 + 1, EleDpth> pigment {Black}} } box { <-2, H3-2, -.25*EleDpth> < 2, H4, .25*EleDpth> pigment { Green } } box { <-1.9, H4, -.25*EleDpth> < 1.9, H4 + 1, .25*EleDpth> pigment { Yellow }} union { box { <-EleWdt*(1/3)+.7, H1+(H2-H1)/4+0.75, (EleDpth+.17)> pigment {White} } text { ttf "arial.ttf" "FOREMOST" 0.001,0 pigment { Black } Axis_Rotate_Trans(y, 180) translate (EleDpth+.181)*z translate (H1+(H2-H1)/4+.9)*y translate (EleWdt*(1/4)-.3)*x } } #declare MotorSt = .25*EleDpth - 1.2; #declare MotorEnd = EleDpth/2.2 ; #declare MotorMid = (MotorSt + MotorEnd)/2; union { cylinder { < 0.31, H3, EleDpth/2.2> < 0.31, H4+4.4, EleDpth/2.2> 0.3 } cylinder { <-0.31, H3, EleDpth/2.2> <-0.31, H4+4.4, EleDpth/2.2> 0.3 } cylinder { < 0.31, H3, .25*EleDpth + 0.3> < 0.31, H4+4.4, .25*EleDpth + 0.2> 0.3 } cylinder { <-0.31, H3, .25*EleDpth + 0.3> <-0.31, H4+4.4, .25*EleDpth + 0.2> 0.3 } box { <-.61, H4+3, MotorSt> < 0.61, H4+4.4, MotorEnd> } pigment {Green} } // Top Platform and Rail union { box { <1.25, H4+3, .25*EleDpth - 1.9> <-1.25, H4+3.15, EleDpth / 2.2 + 0.8> } cylinder { <-1.2, H4+3, .25*EleDpth - 1.85> <-1.2, H4+4.15, .25*EleDpth - 1.85> 0.05 } cylinder { < 1.2, H4+3, .25*EleDpth - 1.85> < 1.2, H4+4.15, .25*EleDpth - 1.85> 0.05 } cylinder { <-1.2, H4+3, EleDpth / 2.2 + 0.75> <-1.2, H4+4.15, EleDpth / 2.2 + 0.75> 0.05 } cylinder { < 1.2, H4+3, EleDpth / 2.2 + 0.75> < 1.2, H4+4.15, EleDpth / 2.2 + 0.75> 0.05 } cylinder { <-1.2, H4+4.15, .25*EleDpth - 1.85> < 1.2, H4+4.15, .25*EleDpth - 1.85> 0.05 } cylinder { < 1.2, H4+4.15, .25*EleDpth - 1.85> < 1.2, H4+4.15, EleDpth / 2.2 + 0.75> 0.05 } cylinder { <-1.2, H4+4.15, .25*EleDpth - 1.85> <-1.2, H4+4.15, EleDpth / 2.2 + 0.75> 0.05 } cylinder { < 1.2, H4+4.15, EleDpth / 2.2 + 0.75> <-1.2, H4+4.15, EleDpth / 2.2 + 0.75> 0.05 } cylinder { <-1.2, H4+3.575, .25*EleDpth - 1.85> < 1.2, H4+3.575, .25*EleDpth - 1.85> 0.05 } cylinder { < 1.2, H4+3.575, .25*EleDpth - 1.85> < 1.2, H4+3.575, EleDpth / 2.2 + 0.75> 0.05 } cylinder { <-1.2, H4+3.575, .25*EleDpth - 1.85> <-1.2, H4+3.575, EleDpth / 2.2 + 0.75> 0.05 } cylinder { < 1.2, H4+3.575, EleDpth / 2.2 + 0.75> <-1.2, H4+3.575, EleDpth / 2.2 + 0.75> 0.05 } difference { cylinder { <0.8, H4 + 4.5, MotorMid+0.5> <-0.8, H4 + 4.5, MotorMid+0.5> .3 } cylinder { <0.9, H4 + 4.5, MotorMid+0.5> <-0.9, H4 + 4.5, MotorMid+0.5> .1 } } difference { cylinder { <0.77, H4 + 4.7, MotorMid+0.3> <-0.77, H4 + 4.7, MotorMid+0.3> .3 } cylinder { <0.9, H4 + 4.7, MotorMid+0.3> <-0.9, H4 + 4.7, MotorMid+0.3> .1 } } pigment {Grey} } // Black Ring Under the Elevator Motor union { cylinder { < 0.31, H4+4.3, EleDpth/2.2> < 0.31, H4+4.4, EleDpth/2.2> 0.5 } cylinder { <-0.31, H4+4.3, EleDpth/2.2> <-0.31, H4+4.4, EleDpth/2.2> 0.5 } cylinder { <0.7, H4 + 4.5, MotorMid+0.5> <0.72, H4 + 4.5, MotorMid+0.5> .32 } cylinder { <0.7, H4 + 4.7, MotorMid+0.3> <0.72, H4 + 4.7, MotorMid+0.3> .32 } cylinder { <-0.7, H4 + 4.5, MotorMid+0.5> <-0.72, H4 + 4.5, MotorMid+0.5> .32 } cylinder { <-0.7, H4 + 4.7, MotorMid+0.3> <-0.72, H4 + 4.7, MotorMid+0.3> .32 } box { <-.63, H4+4.3, MotorSt-.1> < 0.63, H4+4.4, MotorEnd+.2> } pigment {Black} } difference { cylinder { <.61, H4+4.3,MotorMid+.15> <-.61, H4+4.3, MotorMid+.15> (MotorEnd-MotorSt)/2+.15 } box { <-.9, H4, MotorSt-.4> < 0.9, H4+4.4, MotorEnd+.4> } pigment {Yellow} } // Truck Unload Pipe union { cylinder { <0, H3-.3, EleDpth + 0.25>, <0, H1+1.8, EleDpth + 0.4> 0.15 } cylinder { <0, H3+.15, EleDpth-1> <0, H3-.3, EleDpth + 0.25> 0.15 } sphere { <0, H3-.3, EleDpth + 0.25> 0.15 } cylinder { <0, H1+1.8, EleDpth + 0.4>, <0, H1+1.8, EleDpth + 0.6> 0.15 } sphere { <0, H1+1.8, EleDpth + 0.4> 0.15 } cylinder { <0, H1+1.8, EleDpth + 0.6>, <0, H1-3, PitDpth + 3> 0.15 } sphere { <0, H1+1.8, EleDpth + 0.6> 0.15 } sphere { <0, H1-3, PitDpth + 3> 0.15 } pigment {Red} } //Top Unload Pipe Support Brace difference { cylinder { < 0, H3-.6, EleDpth+.1> <0, H3-.9, EleDpth+.1> 0.35 pigment {Black} } cylinder { < 0, H4, EleDpth+.1> <0, H2, EleDpth+.1> 0.34 pigment {Black} } } //Middle Unload Pipe Support Brace difference { cylinder { < 0, (H2+H1)/2, EleDpth+.2> <0, (H2 + H1)/2+.2, EleDpth+.2> 0.35 pigment {Black}} cylinder { < 0, H1/2, EleDpth+.2> <0, H2, EleDpth+.2> 0.34 pigment {Black}} } union { cylinder { <0.16, H1-5, EleDpth + .93> <0.16, H1+1.22, EleDpth+2> 0.04 pigment {Grey}} cylinder { <-0.16, H1-5, EleDpth + .93> <-0.16, H1+1.22, EleDpth+2> 0.04 pigment {Grey}} cylinder { <-0.16, H1+0.90, EleDpth + 1.9> <0.16, H1+.90, EleDpth + 1.9> 0.04 pigment {Grey} } cylinder { <-0.16, H1+1.25, EleDpth + 2> <0.16, H1+1.25, EleDpth + 2> 0.04 pigment {Grey} } sphere { <-0.16, H1+1.25, EleDpth + 2> 0.04 } sphere { <-0.16, H1+1.25, EleDpth + 2> 0.04 } pigment {Grey} } union { cylinder { <0.16, H0, PitDpth - 1.57> <0.16, H1-0.91, PitDpth - .5> 0.04 pigment {Grey}} cylinder { <-0.16, H0, PitDpth - 1.57> <-0.16, H1-0.91, PitDpth - .5> 0.04 pigment {Grey}} cylinder { <-0.16, H1-1, PitDpth - .6> <0.16, H1-1, PitDpth - .6> 0.04 pigment {Grey} } cylinder { <-0.16, H1-0.8, PitDpth - .5> <0.16, H1-0.8, PitDpth - .5> 0.04 pigment {Grey} } sphere { <-0.16, H1-0.9, PitDpth - .5> 0.04 } sphere { <-0.16, H1-0.9, PitDpth - .5> 0.04 } pigment {Grey} } // Unload Pipe over Platform cylinder { <0, H1-3, PitDpth + 3>, <0, H1-5.5, PitDpth + 3> 0.14 pigment {Grey} } cylinder { <0, H1-5.2, PitDpth + 3>, <0, H1-6.1, PitDpth + 3> 0.15 pigment {Black} } // Cement Pad union { box { < BotWdt-2, 0, PitDpth> < .1, .1, PitDpth + 7 > } box { < -.1, 0, PitDpth> < -BotWdt+2, .1, PitDpth + 7 > } pigment {color rgb<1.4, 1.27, .82>} finish {crand 0.05 roughness 10 } } //Railroad Tracks #declare B11=<-1000,0,-EleDpth-7.7>; #declare B12=<-1000,.3,-EleDpth-5.5>; // #declare B13=<-1000,.3,-EleDpth-4.0>; #declare B14=<-1000, 0,-EleDpth-4.0>; // row 1 #declare B21=<-500, 0, -EleDpth-7.5>; #declare B22=<-500,.28,-EleDpth-5.5>; // #declare B23=<-500,.3, -EleDpth-4.0>; #declare B24=<-500, 0,-EleDpth-4.0>; // row 2 #declare B31=<500, 0, -EleDpth-7.7>; #declare B32=<500,.2,-EleDpth-5.5>; // #declare B33=<500,.35, -EleDpth-4.0>; #declare B34=<500, 0,-EleDpth-4.0>; //row 3 #declare B41=<1000,0,-EleDpth-7.5>; #declare B42=<1000,.3,-EleDpth-5.5>; // #declare B43=<1000,.3,-EleDpth-4.0>; #declare B44=<1000, 0,-EleDpth-4.0>; // row 4 bicubic_patch { type 1 flatness 0.001 u_steps 4 v_steps 4 uv_vectors <0,0> <1,0> <1,1> <0,1> B11, B12, B13, B14 B21, B22, B23, B24 B31, B32, B33, B34 B41, B42, B43, B44 uv_mapping texture { pigment { Grey } finish {roughness 1000 crand 0.1 phong 0.6 phong_size 20} } } //Tracks box { < -9000, .2, -EleDpth-5.2>, <9000, .3, -EleDpth-5> pigment {Black} } box { < -9000, .2, -EleDpth-6.2>, <9000, .3, -EleDpth-6> pigment {Black} } //Wood Planks #declare index = -9000; #while ( index < 9000 ) box { < index, .08, -EleDpth-6.6>, pigment {color rgb<.8, .67, .22>} } #declare index = index + 1.1; #end //White Bin lathe { linear_spline 4, <2,0>, <2,3>, <2,9>, <.4,10> pigment { White } finish { ambient .3 } translate 16*x translate -5*z } cylinder { <16, 0, -5> < 16, 0.5, -5> 2.25 pigment {color rgb<.75, .67, .62>} finish {crand 0.05 roughness 10 } } lathe { linear_spline 6, <.7,9.9>, <.7,9.95>, <.65,9.95>, <.65,10.25>, <0.2,10.4>, <0, 10.4> pigment { Black } finish { ambient .3 } translate 16*x translate -5*z } lathe { linear_spline 6, <.7,9.7>, <.7,9.95>, <.65,9.95>, <.65,10.15>, <0.2,10.3>, <0, 10.3> pigment { Grey } finish { ambient .3 } Rotate_Around_Trans(x*90+y*45, <16,9.9, -5>) translate 12.75*x translate -3*y translate -9.75*z } //Dirt around the Elevator prism { cubic_spline 0, // sweep the following shape from here ... 0.0, // ... up through here 9, // the number of points making up the shape ... < 3, -5>, // point#1 (control point... not on curve) < -40, 0>, // point#2 ... THIS POINT ... <30, 4>, // point#3 < 30, 35>, // point#4 < 0, 35> < -35, 35> < -40, 2> < -40, 0>, // point#5 ... MUST MATCH THIS POINT <-5, 0> // point#6 (control point... not on curve) texture {Dirt} } //Grass #declare Width = 40; #declare Depth = 30; //#while ( Width < 60 ) //#while ( Depth < 60) union{ cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} cylinder { .01} pigment {color rgb<1, 0.7, .42>} finish {crand 0.05 roughness 1000 } #declare Depth = Depth + 1.25; } //#end #declare Depth = 40; #declare Width = Width + 2.5; //#end camera { location <-10, 45, 15> // location <-10, 30.3, 5> look_at <0, 30, 0 > focal_point < 0, 40, 0> // green box in focus aperture 0.6 // a nice compromise blur_samples 30 // more samples, higher quality image } // global_settings { ambient_light rgb<1, 1, 1> } light_source { <-1000, 5000, 3500> color Gray75 }// shadowless} light_source { <0, 400, 35> color Gray25 shadowless} light_source { <3000, 50, 350> color Gray25 shadowless} light_source { <-3000, 50, -350> color Gray25 shadowless} light_source { <-3000, 500, 350> color Gray25 shadowless} sky_sphere { pigment { gradient y color_map { [ 0.9 color CornflowerBlue ] [ 1.0 color MidnightBlue ] } scale 2 translate -1 } pigment { bozo turbulence 0.65 octaves 6 omega 0.7 lambda 2 color_map { [0.0 0.1 color rgb <0.85, 0.85, 0.85> color rgb <0.75, 0.75, 0.75>] [0.1 0.5 color rgb <0.75, 0.75, 0.75> color rgbt <1, 1, 1, 1>] [0.5 1.0 color rgbt <1, 1, 1, 1> color rgbt <1, 1, 1, 1>] } scale <0.2, 0.1, 0.2> } }