800 lines
11 KiB
POVRay
800 lines
11 KiB
POVRay
#include "metals.inc"
|
|
#include "glass.inc"
|
|
|
|
#local pos_turm = 8;
|
|
|
|
#declare turm =
|
|
lathe {
|
|
30,
|
|
< 0.0, 0.0>
|
|
< 1.6, 0.0>
|
|
< 1.6, 0.6>
|
|
< 1.4, 1.7>
|
|
< 1.4, 2.0>
|
|
< 1.6, 3.0>
|
|
< 1.9, 3.0>
|
|
< 1.9, 3.1>
|
|
< 1.6, 3.1>
|
|
< 1.1, 5.2>
|
|
< 1.6, 5.2>
|
|
< 1.6, 5.7>
|
|
< 1.3, 6.3>
|
|
< 1.1, 7.0>
|
|
< 0.5, 7.0>
|
|
< 0.5, 7.6>
|
|
< 1.3, 7.6>
|
|
< 1.3, 7.7>
|
|
< 0.5, 7.7>
|
|
< 0.5, 7.9>
|
|
< 1.3, 7.9>
|
|
< 1.3, 8.1>
|
|
< 0.5, 8.1>
|
|
< 0.5, 8.3>
|
|
< 1.3, 8.3>
|
|
< 1.3, 8.5>
|
|
< 1.3, 8.9>
|
|
< 1.6, 8.9>
|
|
< 1.6, 9.5>
|
|
< 0.0, 9.5>
|
|
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
png "turm-c.png" // XXX - rescale!
|
|
map_type 2
|
|
}
|
|
scale <1, 9.5, 1>
|
|
}
|
|
}
|
|
normal {
|
|
bump_map {
|
|
png "turm-b.png"
|
|
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>,
|
|
<0.6, 0.0>,
|
|
<0.6, 0.4>,
|
|
<0.5, 0.5>,
|
|
<0.5, 1.2>,
|
|
<0.6, 1.4>,
|
|
<0.6, 1.8>,
|
|
<0.5, 1.8>,
|
|
<0.4, 2.0>,
|
|
<0.0, 2.0>
|
|
}
|
|
sphere {
|
|
<0, 2, 0>, 0.4
|
|
}
|
|
texture {
|
|
T_Copper_3D
|
|
}
|
|
|
|
}
|
|
|
|
#declare hufeisen =
|
|
union {
|
|
box {
|
|
<0.0, 7.6, 0.0>,
|
|
<0.5, 9.2, 1.5>
|
|
}
|
|
cone {
|
|
<0.0, 8.4, 0.0>, 0.8,
|
|
<0.5, 8.4, 0.0>, 0.8
|
|
}
|
|
texture {
|
|
T_Copper_3D
|
|
}
|
|
|
|
}
|
|
|
|
#declare baum =
|
|
union {
|
|
cone {
|
|
<0, 0, 0>, 0.3,
|
|
<0, 2.7, 0>, 0.1
|
|
}
|
|
sphere {
|
|
<0, 2.7, 0>, 0.15
|
|
}
|
|
#declare i=0;
|
|
#while (i < 6)
|
|
cone {
|
|
<0, i * 0.25 + 0.5, 0>, 0.7 - 0.06 * i,
|
|
<0, i * 0.25 + 0.7, 0>, 0.7 - 0.06 * 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,
|
|
8.9,
|
|
6,
|
|
<0, 0>, <4.1, 0>, <4.1, 2.2>, <2.6, 3.6>, <0, 3.6>, <0, 0>
|
|
}
|
|
box {
|
|
<0.2, 0.7, -0.1>, <3.8, 3.7, 1.4>
|
|
}
|
|
box {
|
|
<0.5, 5.9, -0.1>, <2.0, 8.9, 2.6>
|
|
}
|
|
}
|
|
object {
|
|
console
|
|
translate <0.5, 5.9, 0>
|
|
}
|
|
object {
|
|
baum
|
|
translate <1.25, 6.5, 1.5>
|
|
}
|
|
object {
|
|
zylinder
|
|
translate <0.8, 0.7, 0.7>
|
|
}
|
|
object {
|
|
zylinder
|
|
translate <2.0, 0.7, 0.7>
|
|
}
|
|
object {
|
|
zylinder
|
|
translate <3.2, 0.7, 0.7>
|
|
}
|
|
object {
|
|
hufeisen
|
|
translate <2.3, 0.0, 0.0>
|
|
}
|
|
object {
|
|
hufeisen
|
|
translate <3.0, 0.0, 0.0>
|
|
}
|
|
union {
|
|
#declare zet = 3.1;
|
|
#declare top = 8.9;
|
|
cone {
|
|
<2.5, top, zet>, 0.2
|
|
<2.5, (top+0.2), zet>, 0.2
|
|
}
|
|
cone {
|
|
<2.5, top, zet>, 0.1
|
|
<2.5, top, 1.5>, 0.1
|
|
}
|
|
cone {
|
|
<2.5, top, zet>, 0.1
|
|
<3.3, top, zet-1.2>, 0.1
|
|
}
|
|
cone {
|
|
<3.3, top, zet-1.2>, 0.1
|
|
<3.3, top, 1.5>, 0.1
|
|
}
|
|
cone {
|
|
<2.5, top, zet>, 0.1
|
|
<0.6, top, zet>, 0.1
|
|
}
|
|
cone {
|
|
<0.6, top, zet>, 0.4
|
|
<0.6, (top+0.2), zet>, 0.4
|
|
}
|
|
sphere {
|
|
<0.6, top, zet>, 0.3
|
|
}
|
|
|
|
texture {
|
|
pigment {
|
|
Orange
|
|
}
|
|
}
|
|
}
|
|
union {
|
|
cone {
|
|
<2.9, 8.6, 0>, 0.1
|
|
<2.9, 4.6, 0>, 0.1
|
|
}
|
|
cone {
|
|
<2.9, 4.6, 0.0>, 0.2
|
|
<2.9, 4.6, -0.1>, 0.2
|
|
}
|
|
cone {
|
|
<2.9, 4.7, 0.0>, 0.1
|
|
<1.2, 4.7, 0.0>, 0.1
|
|
}
|
|
cone {
|
|
<2.9, 4.5, 0.0>, 0.1
|
|
<1.8, 4.5, 0.0>, 0.1
|
|
}
|
|
cone {
|
|
<1.8, 4.5, 0.0>, 0.1
|
|
<1.8, 3.7, 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 <0.6, 4.7, 0>
|
|
}
|
|
|
|
texture {
|
|
pigment {
|
|
White
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#declare block_paar =
|
|
union {
|
|
object {
|
|
block
|
|
translate <+0.45, 0, -pos_turm-1.5>
|
|
}
|
|
object {
|
|
block
|
|
translate <+0.45, 0, -pos_turm-1.5>
|
|
scale <-1, 1, 1>
|
|
}
|
|
}
|
|
|
|
#declare steg_turm =
|
|
union {
|
|
difference {
|
|
cone {
|
|
<0, 5.2, 0>, 1.6 + 0.8,
|
|
<0, 5.4, 0>, 1.6 + 0.8
|
|
}
|
|
cone {
|
|
<0, 5.1, 0>, 1.6,
|
|
<0, 5.5, 0>, 1.6
|
|
}
|
|
}
|
|
difference {
|
|
torus {
|
|
1.6 + 0.8, 0.02
|
|
translate <0, 6.2, 0>
|
|
}
|
|
box {
|
|
<-0.4, 6.1, +(1.6 + 0.7)>
|
|
<+0.4, 6.3, +(1.6 + 0.9)>
|
|
rotate <0, 135, 0>
|
|
}
|
|
box {
|
|
<-0.4, 6.1, +(1.6 + 0.7)>
|
|
<+0.4, 6.3, +(1.6 + 0.9)>
|
|
rotate <0, 240, 0>
|
|
}
|
|
box {
|
|
<-0.4, 6.1, +(1.6 + 0.7)>
|
|
<+0.4, 6.3, +(1.6 + 0.9)>
|
|
rotate <0, 30, 0>
|
|
}
|
|
}
|
|
|
|
#declare i=0;
|
|
#while (i < 360)
|
|
#if (i != 30 & i != 240)
|
|
cone {
|
|
<0, 5.2, (1.6 + 0.8)>, 0.02,
|
|
<0, 6.2, (1.6 + 0.8)>, 0.02
|
|
rotate <0, i, 0>
|
|
}
|
|
#end
|
|
#declare i = i + 30;
|
|
#end
|
|
union {
|
|
cone {
|
|
<-0.4, 0, 0>, 0.02,
|
|
<-0.4, 6.2, 0>, 0.02
|
|
}
|
|
cone {
|
|
<+0.4, 0, 0>, 0.02,
|
|
<+0.4, 6.2, 0>, 0.02
|
|
}
|
|
#declare i=0.3;
|
|
#while (i < 5.2)
|
|
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, 5.7, 0>
|
|
}
|
|
difference {
|
|
torus {
|
|
0.5, 0.02
|
|
rotate <0, 0, 90>
|
|
}
|
|
plane {
|
|
<0, 0, -1>, 0
|
|
}
|
|
translate <+0.4, 5.7, 0>
|
|
}
|
|
translate <0, 0, -(1.6 + 0.8)>
|
|
rotate <0, -45, 0>
|
|
}
|
|
}
|
|
|
|
#declare steg_verbindung =
|
|
union {
|
|
#local z1 = 0.4 * cos(radians(30));
|
|
box {
|
|
<1.6 + 0.4, 5.2, -0.4>,
|
|
<(1.5+0.8-z1)*2, 5.4, 0.4>
|
|
}
|
|
|
|
cone {
|
|
<1.6 + 0.8, 5.2, -0.4>, 0.02
|
|
<1.6 + 0.8, 6.2, -0.4>, 0.02
|
|
}
|
|
cone {
|
|
<1.6 + 0.8, 6.2, -0.4>, 0.02
|
|
<(1.5+z1)*2, 6.2, -0.4>, 0.02
|
|
}
|
|
cone {
|
|
<(1.5+z1)*2, 5.2, -0.4>, 0.02
|
|
<(1.5+z1)*2, 6.2, -0.4>, 0.02
|
|
}
|
|
|
|
cone {
|
|
<1.6 + 0.8, 5.2, +0.4>, 0.02
|
|
<1.6 + 0.8, 6.2, +0.4>, 0.02
|
|
}
|
|
cone {
|
|
<1.6 + 0.8, 6.2, +0.4>, 0.02
|
|
<(1.5+0.8-z1)*2, 6.2, +0.4>, 0.02
|
|
}
|
|
cone {
|
|
<(1.5+0.8-z1)*2, 5.2, +0.4>, 0.02
|
|
<(1.5+0.8-z1)*2, 6.2, +0.4>, 0.02
|
|
}
|
|
//plane {
|
|
// <0, 0, -1>, 3.3
|
|
//}
|
|
//rotate <0, 180 - 32.03, 0>
|
|
rotate <0, 180 - 30.00, 0>
|
|
translate <pos_turm, 0, 0>
|
|
}
|
|
|
|
#declare steg_seite =
|
|
union {
|
|
#local x1 = pos_turm - (1.5+0.8-z1)*2*cos(radians(30)) + 0.4*sin(radians(30));
|
|
box {
|
|
<-x1, 5.2, -2.3>,
|
|
<+x1, 5.4, -1.5>
|
|
}
|
|
cone {
|
|
<-x1, 6.2, -2.3>, 0.02,
|
|
<+x1, 6.2, -2.3>, 0.02
|
|
}
|
|
#declare i=-4;
|
|
#while (i <= 4)
|
|
cone {
|
|
<i, 5.2, -(1.5 + 0.8)>, 0.02,
|
|
<i, 6.2, -(1.5 + 0.8)>, 0.02
|
|
}
|
|
#declare i = i + 2;
|
|
#end
|
|
object {
|
|
steg_verbindung
|
|
}
|
|
object {
|
|
steg_verbindung
|
|
scale <-1, 1, 1>
|
|
}
|
|
}
|
|
|
|
#declare steg1 =
|
|
union {
|
|
object {
|
|
steg_turm
|
|
translate <pos_turm, 0, 0>
|
|
}
|
|
object {
|
|
steg_seite
|
|
translate <0, 0, 0>
|
|
}
|
|
|
|
/*
|
|
texture {
|
|
T_Chrome_5E
|
|
}
|
|
*/
|
|
texture {
|
|
pigment {
|
|
Yellow
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare steg =
|
|
union {
|
|
object {
|
|
steg1
|
|
translate <0, 0, -pos_turm>
|
|
}
|
|
object {
|
|
steg1
|
|
translate <0, 0, -pos_turm>
|
|
rotate <0, 90, 0>
|
|
}
|
|
object {
|
|
steg1
|
|
translate <0, 0, -pos_turm>
|
|
rotate <0, 180, 0>
|
|
}
|
|
object {
|
|
steg1
|
|
translate <0, 0, -pos_turm>
|
|
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.3, 0>, 3.2
|
|
}
|
|
cone {
|
|
<0, 0.3, 0>, 2.8
|
|
<0, 2.5, 0>, 3.2
|
|
}
|
|
cone {
|
|
<0, 2.5, 0>, 2.5
|
|
<0, 3.6, 0>, 2.5
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
gif "zentral1.gif"
|
|
map_type 2
|
|
}
|
|
scale <1, 1.1, 1>
|
|
}
|
|
}
|
|
}
|
|
intersection {
|
|
sphere {
|
|
<0, 5.5, 0>, 3.9
|
|
}
|
|
box {
|
|
<-3.9, 3.6, -3.9>
|
|
<+3.9, 7.4, +3.9>
|
|
}
|
|
}
|
|
union {
|
|
difference {
|
|
cone {
|
|
<0, 7.4, 0>, 2.7
|
|
<0, 8.4, 0>, 2.3
|
|
}
|
|
box {
|
|
<0.2, 7.5, -0.2>
|
|
<2.7, 8.3, -2.7>
|
|
}
|
|
box {
|
|
<0.2, 7.5, +0.2>
|
|
<2.7, 8.3, +2.7>
|
|
}
|
|
box {
|
|
<-0.2, 7.5, +0.2>
|
|
<-2.7, 8.3, +2.7>
|
|
}
|
|
box {
|
|
<-0.2, 7.5, -0.2>
|
|
<-2.7, 8.3, -2.7>
|
|
}
|
|
|
|
}
|
|
cone {
|
|
<0, 7.4, 0>, 2.1
|
|
<0, 8.4, 0>, 2.1
|
|
}
|
|
|
|
}
|
|
cone {
|
|
<0, 8.4, 0>, 1.7
|
|
<0, 8.9, 0>, 1.4
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
gif "zentral2.gif"
|
|
map_type 2
|
|
}
|
|
scale <1, 0.5, 1>
|
|
translate <0, -0.1, 0>
|
|
}
|
|
}
|
|
}
|
|
cone {
|
|
<0, 8.9, 0>, 0.7
|
|
<0, 9.0, 0>, 0.7
|
|
}
|
|
sphere {
|
|
<0, 9.0, 0>, 0.5
|
|
}
|
|
texture {
|
|
pigment { White }
|
|
}
|
|
|
|
}
|
|
|
|
#declare klammer =
|
|
union {
|
|
difference {
|
|
box {
|
|
<6, 7.6, -0.5>
|
|
<10, 8.9, +0.5>
|
|
}
|
|
cone {
|
|
<0, 0, -1.1>, 1
|
|
<0, 0, +1.1>, 1
|
|
translate <7.3, 7.6, 0>
|
|
}
|
|
box {
|
|
<5.9, 7.6, -1.1>
|
|
<7.3, 8.5, +1.1>
|
|
}
|
|
}
|
|
cone {
|
|
< 6, 8.9, 0>, 0.1
|
|
<10, 8.9, 0>, 0.1
|
|
texture { pigment { Orange } }
|
|
}
|
|
cone {
|
|
<7.3, 8.9, 0>, 0.3
|
|
<7.3, 9.1, 0>, 0.3
|
|
texture { pigment { Orange } }
|
|
}
|
|
box {
|
|
< 6.0, 8.1, -1>
|
|
<11, 8.3, +1>
|
|
}
|
|
intersection {
|
|
torus {
|
|
5.2, 1.0
|
|
translate <0, 7.4, 0>
|
|
}
|
|
box {
|
|
<4.2, 6.4, -1.0>
|
|
<6.2, 7.4, +1.0>
|
|
}
|
|
}
|
|
intersection {
|
|
difference {
|
|
cone {
|
|
<0, 7.4, 0>, 6.2
|
|
<0, 8.3, 0>, 6.2
|
|
}
|
|
cone {
|
|
<0, 7.3, 0>, 6.0
|
|
<0, 8.4, 0>, 6.0
|
|
}
|
|
}
|
|
box {
|
|
<4.7, 7.4, -1.0>
|
|
<6.7, 8.3, +1.0>
|
|
}
|
|
}
|
|
prism {
|
|
linear_spline
|
|
linear_sweep
|
|
-0.8, 0.8,
|
|
8,
|
|
<4.5, 8.1>, <5.5, 8.1>, <6.0, 8.3>, <7.5, 8.3>,
|
|
<7.5, 8.5>, <6.0, 8.8>, <4.0, 8.8>, <4.5, 8.1>
|
|
rotate <-90, 0, 0>
|
|
texture {
|
|
pigment { White }
|
|
}
|
|
}
|
|
texture {
|
|
pigment { White }
|
|
}
|
|
}
|
|
|
|
#declare ring =
|
|
union {
|
|
torus {
|
|
5.2, 0.8
|
|
translate <0, 7.4, 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 <-pos_turm, 0, -pos_turm>
|
|
}
|
|
object {
|
|
turm
|
|
translate <-pos_turm, 0, +pos_turm>
|
|
}
|
|
object {
|
|
turm
|
|
translate <+pos_turm, 0, +pos_turm>
|
|
}
|
|
object {
|
|
turm
|
|
translate <+pos_turm, 0, -pos_turm>
|
|
}
|
|
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
|
|
}
|
|
cone {
|
|
<0, 0, 0>, 15.0
|
|
<0, 0.005, 0>, 15.0
|
|
texture {
|
|
pigment {
|
|
Blue
|
|
}
|
|
}
|
|
}
|
|
}
|