/* SBB Bridge Rheinfall, see www.rheinfall.com for pictures Author: Oliver Knill Einheit 1 = 1m Brueckenlaenge: ca 200 m 10 Pfeiler , Pfeiler 1-7 sind schmaeler 3m 8-10 5m Hoehe: ca 12 m Breite: ca 7m Richtung: West-Ost x- Richtung y ^ | | 7 +--------------------------------------+ 0 +--------------------------------------+ 0 200 --> x */ #declare b_length = 200; #declare b_height = 12; #declare b_width = 7; #declare water_depth= 4; #declare bogen_radius= 8.0; #declare fundament_radius = 3.5; #declare bogen = array[9] { 20,40,60,80,100,120,140,160,180 } #declare saeulen = array[10] { 10,30,50,70,90,110,130,150,170,190 } #declare h=2.5; // height of center of cut out bogen #declare o = 100; // make top length larger by o to fit #declare SteinTexture= texture { pigment{ colour rgb <0.7,0.7,0.7> } normal{ granite 0.6 scale 0.24 } finish{ phong 0.8 phong_size 200 } } #declare SchotterTexture= texture { pigment{ colour rgb <0.55,0.3,0.3> } normal{ granite 0.6 scale 6.24 } finish{ phong 0.8 phong_size 400 } } #declare HauptTeil = difference { box { <0,0-water_depth,0>, } union { #declare i=0; #while (i<9) union { cylinder { ,, bogen_radius } box { , } } #declare i=i+1; #end } texture {SteinTexture} } #declare Fundament = union { #declare i=0; #while (i<10) box { , } #declare i=i+1; #end texture {SteinTexture} } #declare Top = box { <-o,b_height,-2>, texture {SteinTexture} } #declare Gelaender = union { cylinder{ <-o,b_height+0.8+0.2,-2>,,0.05 } cylinder{ <-o,b_height+0.8+1.8,-2>,,0.05 } #declare i=0; #declare g_n=20; #while (i, ,0.05 } #declare i=i+1; #end pigment{ colour rgb <0.9,0.9,0.9> } finish { ambient .1 diffuse .6 reflection .55 specular 1 metallic } } #declare Schotter = box { <-o,b_height+0.8,-2+3>, texture {SchotterTexture} } #declare Geleise = union { cylinder{ <-o,b_height+0.8+0.2,-2+3.9>, ,0.07 } cylinder{ <-o,b_height+0.8+0.2,b_width+2-3.9>, ,0.07 } pigment{ colour rgb <0.8,0.2,0.2> } finish { ambient .1 diffuse .6 reflection .55 specular 1 } } #declare m_r=0.2; // masten radius #declare m_h=8.0; // masten height #declare Masten = union { cylinder { <0,b_height,-2>,<0,b_height+m_h,-2>,m_r } cylinder { <0,b_height,b_width+2>,<0,b_height+m_h,b_width+2>,m_r } cylinder {<0,b_height+m_h,-2>, <0,b_height+m_h,b_width+2>,m_r } sphere { <0,b_height+m_h,-2>, m_r } sphere { <0,b_height+m_h, b_width+2>, m_r } pigment{ colour rgb <0.9,0.9,0.9> } finish { ambient .1 diffuse .6 reflection .55 specular 1 metallic } } #declare SBBBruecke = union { object{ HauptTeil } object{ Fundament } object{ Top } object{ Masten translate x*saeulen[2] } object{ Masten translate x*saeulen[5] } object{ Masten translate x*saeulen[8] } object{ Gelaender } object{ Gelaender translate z*1.5 } object{ Gelaender translate z*(b_width+4) } object{ Gelaender translate z*(b_width+4-1.5) } object{ Schotter } object {Geleise } }