3d/pr/schneller_kreuzer/transitionstriebwerk.pov

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
}
}
}
}