#include "metals.inc" #include "glass.inc" #declare turm = lathe { 30, <0.0, 0.0>, <2.7, 0.0>, <2.7, 0.6>, <2.3, 1.8>, <2.3, 2.2>, <2.7, 3.2>, <3.2, 3.2>, <3.2, 3.4>, <2.7, 3.4>, <1.8, 5.6>, <2.7, 5.6>, <2.7, 6.2>, <2.1, 6.8>, <1.9, 7.6>, <0.9, 7.6>, <0.9, 8.2>, <2.1, 8.2>, <2.1, 8.4>, <0.9, 8.4>, <0.9, 8.6>, <2.1, 8.6>, <2.1, 8.8>, <0.9, 8.8>, <0.9, 9.0>, <2.1, 9.0>, <2.1, 9.2>, <2.1, 9.7>, <2.6, 9.7>, <2.6, 10.3>, <0.0, 10.3> texture { pigment { image_map { gif "turm-c.gif" map_type 2 } scale <1, 10.3, 1> } } normal { bump_map { gif "turm-b.gif" map_type 2 bump_size 5 } scale <1, 10.3, 1> } } #declare console = union { prism { linear_sweep linear_spline 0, 2.6, 5, <0, 0>, <4.4, 0>, <4.4, 0.6>, <0.6, 0.6>, <0, 0> rotate <0, -90, 0> rotate <0, 0, -90> texture { pigment {White} } } union { box { <0, 0, 0>, <1.4, 0.6*sqrt(2), -0.01> texture { pigment {Black} } } box { <0.4, 0.5, 0.01>, <1.3, 0.8, -0.02> texture { pigment {Green} } } sphere { <0.55, 0.35, 0.01>, 0.13 scale <1, 1, 0.1> texture { pigment {Green} } } sphere { <0.85, 0.35, 0.01>, 0.13 scale <1, 1, 0.1> texture { pigment {Yellow} } } sphere { <1.15, 0.35, 0.01>, 0.13 scale <1, 1, 0.1> texture { pigment {Red} } } rotate <45, 0, 0> } } #declare zylinder = union { lathe { 10, <0.0, 0.0>, <1.0, 0.0>, <1.0, 0.4>, <0.8, 0.5>, <0.8, 1.2>, <1.0, 1.4>, <1.0, 1.8>, <0.8, 1.8>, <0.7, 2.0>, <0.0, 2.0> } sphere { <0, 2, 0>, 0.7 } texture { T_Copper_3D } } #declare hufeisen = union { box { <0.0, 8.2, 0.0>, <0.8, 10.0, 2.5> } cone { <0.0, 9.1, 0.0>, 0.9, <0.8, 9.1, 0.0>, 0.9 } texture { T_Copper_3D } } #declare baum = union { cone { <0, 0, 0>, 0.3, <0, 2.9, 0>, 0.1 } sphere { <0, 2.85, 0>, 0.15 } #declare i=0; #while (i < 6) cone { <0, i * 0.33 + 0.5, 0>, 1.2 - 0.1 * i, <0, i * 0.33 + 0.8, 0>, 1.2 - 0.1 * i texture { T_Ruby_Glass } } #declare i = i + 1; #end cone { <0, 0, 0>, 0.5, <0, 0.4, 0>, 0.4 } texture { T_Chrome_5E } } #declare block = union { difference { prism { linear_sweep linear_spline 0, 9.6, 6, <0, 0>, <6.8, 0>, <6.8, 3.6>, <4.4, 6.0>, <0, 6.0>, <0, 0> } box { <0.4, 0.8, -0.1>, <6.4, 4, 2.4> } box { <0.8, 6.4, -0.1>, <3.4, 9.7, 4.4> } } object { console translate <0.8, 6.4, 0> } object { baum translate <2.1, 7.0, 2.5> } object { zylinder translate <1.4, 0.8, 1.2> } object { zylinder translate <3.4, 0.8, 1.2> } object { zylinder translate <5.4, 0.8, 1.2> } object { hufeisen translate <3.8, 0.0, 0.0> } object { hufeisen translate <5.0, 0.0, 0.0> } union { #declare zet = 5.2; cone { <4.0, 9.6, zet>, 0.4 <4.0, 9.8, zet>, 0.4 } cone { <4.0, 9.6, zet>, 0.1 <4.0, 9.6, 2.5>, 0.1 } cone { <4.0, 9.6, zet>, 0.1 <5.2, 9.6, zet-1.2>, 0.1 } cone { <5.2, 9.6, zet-1.2>, 0.1 <5.2, 9.6, 2.5>, 0.1 } cone { <4.0, 9.6, zet>, 0.1 <1.0, 9.6, zet>, 0.1 } cone { <1.0, 9.6, zet>, 0.6 <1.0, 9.8, zet>, 0.6 } sphere { <1.0, 9.6, zet>, 0.5 } texture { pigment { Orange } } } union { cone { <4.8, 9.3, 0>, 0.1 <4.8, 5.0, 0>, 0.1 } cone { <4.8, 5.0, 0.0>, 0.2 <4.8, 5.0, -0.1>, 0.2 } cone { <4.8, 5.1, 0.0>, 0.1 <2.0, 5.1, 0.0>, 0.1 } cone { <4.8, 4.9, 0.0>, 0.1 <3.0, 4.9, 0.0>, 0.1 } cone { <3.0, 4.9, 0.0>, 0.1 <3.0, 4.0, 0.0>, 0.1 } texture { pigment { Orange } } } union { box { <0, 0.1, -0.2>, <1, 0.3, 0> } box { <0, -0.3, -0.2>, <1, -0.1, 0> } box { <0, -0.7, -0.2>, <1, -0.5, 0> } cone { <0.2, -0.7, -0.1>, 0.1, <0.2, 0.3, -0.1>, 0.1 } cone { <0.5, -0.7, -0.1>, 0.1, <0.5, 0.3, -0.1>, 0.1 } cone { <0.8, -0.7, -0.1>, 0.1, <0.8, 0.3, -0.1>, 0.1 } texture { pigment { LightSteelBlue } } translate <1, 5.1, 0> } texture { pigment { White } } } #declare block_paar = union { object { block translate <+0.45, 0, -14.5> } object { block translate <+0.45, 0, -14.5> scale <-1, 1, 1> } } #declare steg_turm = union { difference { cone { <0, 5.6, 0>, 2.7 + 0.8, <0, 5.8, 0>, 2.7 + 0.8 } cone { <0, 5.5, 0>, 2.7, <0, 5.9, 0>, 2.7 } } difference { torus { 2.7 + 0.8, 0.02 translate <0, 6.6, 0> } box { <-0.4, 6.5, -(2.7 + 0.9)> <+0.4, 6.7, +(2.7 + 0.9)> rotate <0, -45, 0> } box { <-0.4, 6.5, -(2.7 + 0.9)> <+0.4, 6.7, +(2.7 + 0.9)> rotate <0, 90 - 32.03, 0> } box { <-0.4, 6.5, -(2.7 + 0.9)> <+0.4, 6.7, +(2.7 + 0.9)> rotate <0, 180 + 32.03, 0> } } #declare i=0; #while (i < 360) cone { <0, 5.6, -(2.7 + 0.8)>, 0.02, <0, 6.6, -(2.7 + 0.8)>, 0.02 rotate <0, i, 0> } #declare i = i + 30; #end union { cone { <-0.4, 0, 0>, 0.02, <-0.4, 6.6, 0>, 0.02 } cone { <+0.4, 0, 0>, 0.02, <+0.4, 6.6, 0>, 0.02 } #declare i=0.3; #while (i < 5.6) box { <-0.4, i, 0.1>, <+0.4, i + 0.02, -0.1> } #declare i = i + 0.3; #end difference { torus { 0.5, 0.02 rotate <0, 0, 90> } plane { <0, 0, -1>, 0 } translate <-0.4, 6.1, 0> } difference { torus { 0.5, 0.02 rotate <0, 0, 90> } plane { <0, 0, -1>, 0 } translate <+0.4, 6.1, 0> } translate <0, 0, -(2.7 + 0.8)> rotate <0, -45, 0> } } #declare steg_verbindung = union { box { <2.7 + 0.4, 5.6, -0.4>, <5.582 , 5.8, 0.4> } cone { <2.7 + 0.8, 6.6, -0.4>, 0.02 <5.353 , 6.6, -0.4>, 0.02 } cone { <2.7 + 0.8, 6.6, +0.4>, 0.02 <5.582 , 6.6, +0.4>, 0.02 } //plane { // <0, 0, -1>, 3.3 //} rotate <0, 180 - 32.03, 0> translate <12, 0, 0> } #declare steg_seite = union { box { <-(12 - 4.52), 5.6, -3.3>, <+(12 - 4.52), 5.8, -2.5> } cone { <-(12 - 4.52), 6.6, -3.3>, 0.02, <+(12 - 4.52), 6.6, -3.3>, 0.02 } #declare i=-6; #while (i <= 6) cone { , 0.02, , 0.02 } #declare i = i + 2; #end object { steg_verbindung } object { steg_verbindung scale <-1, 1, 1> } } #declare steg1 = union { object { steg_turm translate <12, 0, 0> } object { steg_seite translate <0, 0, 0> } texture { T_Chrome_5E } } #declare steg = union { object { steg1 translate <0, 0, -12> } object { steg1 translate <0, 0, -12> rotate <0, 90, 0> } object { steg1 translate <0, 0, -12> rotate <0, 180, 0> } object { steg1 translate <0, 0, -12> rotate <0, 270, 0> } } #declare zentralturm = union { cone { <0, 0, 0>, 7.0 <0, 0.01, 0>, 7.0 texture { pigment { Yellow } } } cone { <0, 0, 0>, 3.2 <0, 0.4, 0>, 3.2 } cone { <0, 0.4, 0>, 2.8 <0, 3, 0>, 3.2 } cone { <0, 3, 0>, 2.5 <0, 4.4, 0>, 2.5 texture { pigment { image_map { gif "zentral1.gif" map_type 2 } scale <1, 1.4, 1> } } } intersection { sphere { <0, 6.6, 0>, 3.9 } box { <-3.9, 4.4, -3.9> <+3.9, 8.8, +3.9> } } union { difference { cone { <0, 8.8, 0>, 2.7 <0, 10.2, 0>, 2.3 } box { <0.2, 9.0, -0.2> <2.7, 10.0, -2.7> } box { <0.2, 9.0, +0.2> <2.7, 10.0, +2.7> } box { <-0.2, 9.0, +0.2> <-2.7, 10.0, +2.7> } box { <-0.2, 9.0, -0.2> <-2.7, 10.0, -2.7> } } cone { <0, 8.8, 0>, 2.1 <0, 10.2, 0>, 2.1 } } cone { <0, 10.2, 0>, 1.7 <0, 10.8, 0>, 1.4 texture { pigment { image_map { gif "zentral2.gif" map_type 2 } scale <1, 0.6, 1> } } } cone { <0, 10.8, 0>, 0.7 <0, 10.9, 0>, 0.7 } sphere { <0, 10.9, 0>, 0.6 } texture { pigment { White } } } #declare klammer = union { difference { box { <9, 8.2, -1> <15, 9.7, +1> } cone { <0, 0, -1.1>, 2 <0, 0, +1.1>, 2 scale <1, 0.5, 1> translate <11, 8.2, 0> } box { <8.9, 8.2, -1.1> <11, 9.2, +1.1> } } cone { <9, 9.7, 0>, 0.1 <15, 9.7, 0>, 0.1 texture { pigment { Orange } } } cone { <11, 9.7, 0>, 0.5 <11, 9.9, 0>, 0.5 texture { pigment { Orange } } } box { < 6.5, 8.8, -1> <13, 9.0, +1> } intersection { torus { 5.7, 1.0 translate <0, 8.0, 0> } box { <4.7, 7.0, -1.0> <6.7, 8.0, +1.0> } } intersection { difference { cone { <0, 8.0, 0>, 6.7 <0, 9.0, 0>, 6.7 } cone { <0, 7.9, 0>, 6.5 <0, 9.1, 0>, 6.5 } } box { <4.7, 8.0, -1.0> <6.7, 9.0, +1.0> } } prism { linear_spline linear_sweep -0.8, 0.8, 8, <5.0, 8.8>, <6.0, 8.8>, <6.5, 9.0>, <8, 9.0>, <8, 9.2>, <6.5, 9.5>, <4.5, 9.5>, <5.0, 8.8> rotate <-90, 0, 0> texture { pigment { White } } } texture { pigment { White } } } #declare ring = union { torus { 5.7, 0.8 translate <0, 8.0, 0> texture { pigment { DarkSlateGray } } } object { klammer rotate <0, 45, 0> } object { klammer rotate <0, 135, 0> } object { klammer rotate <0, -45, 0> } object { klammer rotate <0, -135, 0> } } #declare transitionstriebwerk = union { object { turm translate <-12, 0, -12> } object { turm translate <-12, 0, +12> } object { turm translate <+12, 0, +12> } object { turm translate <+12, 0, -12> } object { block_paar } object { block_paar rotate <0, 90, 0> } object { block_paar rotate <0, 180, 0> } object { block_paar rotate <0, 270, 0> } object { steg } object { zentralturm } object { ring } }