997 lines
20 KiB
Plaintext
997 lines
20 KiB
Plaintext
|
|
// Persistence of Vision Ray Tracer Include File
|
|
// POV-Ray 3.0
|
|
// File: KR100.pov
|
|
// Vers: 1.0
|
|
// Desc: Kugelraumer 100m Durchmesser
|
|
// Leichter Kreuzer der STÄDTE- / STAATEN-Klasse
|
|
// Date: 31.01.97
|
|
// Auth: Harald Ottacher
|
|
// email: ottacher@iwf.tu-graz.ac.at
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
#declare _MAT_gif = "krpl100.gif";
|
|
#declare _M_ANGL = 0.0;
|
|
|
|
#declare _FENSTER_R = 50;
|
|
|
|
//#declare _STUETZE = 1 // wenn deklariert dann sind
|
|
// die Landstützen ausgefahren
|
|
//#declare _NO_F_LIGHT = 1 // wenn deklariert dann sind
|
|
// die Fenster dunkel
|
|
//#declare _NO_K_LIGHT = 1 // wenn deklariert dann sind
|
|
// Beobachtungskuppel dunkel
|
|
#include "KRMat.inc"
|
|
|
|
////////////////////////////////////////////////////
|
|
|
|
// Kugelraumer 100 Meter
|
|
#declare R = 50.0; // Kugelradius
|
|
#declare wr = 7.0; // Wulstradius
|
|
|
|
// Fenster
|
|
#declare F_O1 =
|
|
union {
|
|
superellipsoid { < 0.5, 0.5 >
|
|
scale < R+5, 0.75, 0.5 >
|
|
translate < 0, 0, -1.25 >
|
|
}
|
|
superellipsoid { < 0.5, 0.5 >
|
|
scale < R+5, 0.75, 0.5 >
|
|
translate < 0, 0, 1.25 >
|
|
}
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare Count = 0;
|
|
#declare F_OR =
|
|
union {
|
|
#while (Count < 180)
|
|
union {
|
|
object {
|
|
F_O1
|
|
rotate < 0, Count-4, 0 >
|
|
}
|
|
object {
|
|
F_O1
|
|
rotate < 0, Count+4, 0 >
|
|
}
|
|
translate < 0, 27.5, 0 >
|
|
}
|
|
#declare Count=Count+20;
|
|
#end
|
|
|
|
#declare Count = 0;
|
|
#while (Count < 180)
|
|
object {
|
|
F_O1
|
|
rotate < 0, Count, 0 >
|
|
translate < 0, 15.5, 0 >
|
|
}
|
|
#declare Count=Count+10;
|
|
#end
|
|
|
|
#declare Count = 0;
|
|
#while (Count < 180)
|
|
object {
|
|
F_O1
|
|
rotate < 0, Count, 0 >
|
|
translate < 0, -15.5, 0 >
|
|
}
|
|
#declare Count=Count+10;
|
|
#end
|
|
}
|
|
|
|
#declare FENSTER =
|
|
difference {
|
|
object { F_OR }
|
|
sphere { <0, 0, 0>, R-0.3
|
|
hollow
|
|
texture {
|
|
_T_FENSTER
|
|
}
|
|
}
|
|
} // end difference
|
|
|
|
//----- Hangar Textur
|
|
#declare Mannschl =
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
png "manns.png"
|
|
interpolate 4 // 4=normalized distance
|
|
// filter 5 1.0
|
|
once
|
|
}
|
|
translate < -0.5, -0.5, 0 >
|
|
scale < 5, 2.5 , 1 >
|
|
rotate < 0, 90 ,0 >
|
|
} // end pigment
|
|
} // end texture
|
|
|
|
#declare Hangar_B =
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
png "HB100.png"
|
|
interpolate 4 // 4=normalized distance
|
|
filter 5 1.0
|
|
once
|
|
}
|
|
translate < -0.5, -0.5, 0 >
|
|
scale < 15, 8 , 1 >
|
|
rotate < 0, 90 ,0 >
|
|
} // end pigment
|
|
} // end texture
|
|
|
|
#declare Hangar_23 =
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
png "hg23_100.png"
|
|
interpolate 4 // 4=normalized distance
|
|
// filter 5 1.0
|
|
once
|
|
}
|
|
translate < -0.5, -0.5, 0 >
|
|
scale < 12, 6 , 1 >
|
|
rotate < 0, 90 ,0 >
|
|
} // end pigment
|
|
} // end texture
|
|
|
|
#declare Hangar_4 =
|
|
texture {
|
|
pigment {
|
|
image_map {
|
|
png "hg4_100.png"
|
|
interpolate 4 // 4=normalized distance
|
|
filter 5 1.0
|
|
once
|
|
}
|
|
translate < -0.5, -0.5, 0 >
|
|
scale < 16, 8 , 1 >
|
|
rotate < 0, 90 ,0 >
|
|
} // end pigment
|
|
} // end texture
|
|
|
|
//----- Hangar Tore
|
|
#declare msl_h = 8.75; // Höhe Mannschl
|
|
#declare hg23_h = -21.5; // Höhe Hangar unten
|
|
#declare hg4_h = 34; // Höhe Hangar oben
|
|
#declare hgb_h = -42; // Höhe Bodenhangar
|
|
|
|
#declare Count = 0;
|
|
#declare MANNSCHL =
|
|
union {
|
|
#while (Count < 360)
|
|
intersection {
|
|
sphere { <0, 0, 0>, R-0.5 }
|
|
box { <-1, -1, -1>, < -0.2, 1, 1>
|
|
scale < R+5, 1.25, 2.5 >
|
|
translate < 0, msl_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
texture {
|
|
Mannschl
|
|
translate < 0, msl_h, 0 >
|
|
}
|
|
rotate < 0, Count ,0 >
|
|
} // end intersection
|
|
#declare Count=Count+90;
|
|
#end
|
|
} // end union
|
|
|
|
#declare HANGAR_B =
|
|
intersection {
|
|
sphere { <0, 0, 0>, R-1.0 }
|
|
box { <-1, -1, -1>, < -0.2, 1, 1>
|
|
scale < R+5, 5, 10 >
|
|
translate < 0, hgb_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
texture {
|
|
Hangar_B
|
|
translate < R, hgb_h, 0 >
|
|
} // end texture
|
|
rotate < 0, 180, 0 >
|
|
} // end intersection
|
|
|
|
#declare HANGAR_23 =
|
|
difference {
|
|
sphere { <0, 0, 0>, R-1.0 }
|
|
box { < -1, -1, -1>, < 1, 1, 1 >
|
|
scale R
|
|
translate < R+5, 0, 0 >
|
|
}
|
|
box { < -1, -1, -1>, < 1, 1, 1 >
|
|
scale R
|
|
translate < 0, R-5, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
texture {
|
|
Hangar_23
|
|
rotate < 0, 67.5 ,0 >
|
|
translate < 0, hg23_h, 0 >
|
|
} // end texture
|
|
texture {
|
|
Hangar_23
|
|
rotate < 0, -67.5 ,0 >
|
|
translate < 0, hg23_h, 0 >
|
|
} // end texture
|
|
} // end difference
|
|
|
|
#declare HANGAR_4 =
|
|
intersection {
|
|
sphere { <0, 0, 0>, R-1.0 }
|
|
box { <-1, -1, -1>, < -0.2, 1, 1>
|
|
scale < R+5, 5, 11 >
|
|
translate < 0, hg4_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
texture {
|
|
Hangar_4
|
|
translate < R, hg4_h, 0 >
|
|
} // end texture
|
|
} // end intersection
|
|
|
|
|
|
//----- Hangar Ausschnitte
|
|
// Mann Schleuse
|
|
#declare Count = 0;
|
|
#declare _MANNSCHL =
|
|
union {
|
|
#while (Count < 180)
|
|
superellipsoid { < 0.2, 0.2 >
|
|
scale < R+5, 1.25, 2.5 >
|
|
rotate < 0, Count ,0 >
|
|
translate < 0, msl_h, 0 >
|
|
}
|
|
#declare Count=Count+90;
|
|
#end
|
|
texture { TERKONIT }
|
|
} // end union
|
|
|
|
// Hangar Boden
|
|
#declare _HANGAR_B =
|
|
object {
|
|
superellipsoid { < 0.2, 0.2 >
|
|
scale < R/2+5, 4, 9 >
|
|
translate < R/2, 0, 0 >
|
|
translate < 0, hgb_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
} // end object
|
|
|
|
// Hangar unten
|
|
#declare _HANGAR_23 =
|
|
union {
|
|
superellipsoid { < 0.2, 0.2 >
|
|
scale < R/2+5, 3, 7 >
|
|
translate < -R/2, 0, 0 >
|
|
rotate < 0, 67.5 ,0 >
|
|
translate < 0, hg23_h, 0 >
|
|
}
|
|
superellipsoid { < 0.2, 0.2 >
|
|
scale < R/2+5, 3, 7 >
|
|
translate < -R/2, 0, 0 >
|
|
rotate < 0, -67.5 ,0 >
|
|
translate < 0, hg23_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
} // end union
|
|
|
|
// Hangar oben
|
|
#declare _HANGAR_4 =
|
|
object {
|
|
superellipsoid { < 0.2, 0.2 >
|
|
scale < R/2+5, 4, 10 >
|
|
translate < -R/2, 0, 0 >
|
|
translate < 0, hg4_h, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
} // end object
|
|
|
|
#declare SCHALE =
|
|
object {
|
|
difference {
|
|
sphere { <0, 0, 0> R
|
|
}
|
|
object { _MANNSCHL } // Mann Schleusen
|
|
object { _HANGAR_B } // Hangar Boden
|
|
object { _HANGAR_23 } // Hangar unten
|
|
object { _HANGAR_4 } // Hangar oben
|
|
object { FENSTER }
|
|
}
|
|
bounded_by {
|
|
sphere { <0, 0, 0> R
|
|
}
|
|
}
|
|
} // end object
|
|
|
|
//---------------------------------------------------
|
|
// Ringwulst
|
|
|
|
#declare DUESE =
|
|
object {
|
|
union {
|
|
quadric {
|
|
<1, 0, 1>,
|
|
<0, 0, 0>,
|
|
<0, -1, 0>, 0
|
|
}
|
|
cylinder {
|
|
< 0, 0.3, 0 >,
|
|
< 0, -0.2, 0 >,
|
|
0.3
|
|
}
|
|
}
|
|
scale 1.5
|
|
texture { TERKONIT
|
|
finish {
|
|
ambient 0.05
|
|
diffuse 0.7
|
|
reflection 0.5
|
|
}
|
|
}
|
|
} // end obj
|
|
|
|
#declare r1 = 3.75;
|
|
#declare dsk = 45;
|
|
|
|
#declare WULST =
|
|
object {
|
|
difference {
|
|
union {
|
|
torus { R, wr }
|
|
cylinder { -wr*y , wr*y, R }
|
|
}
|
|
#declare Count = 15;
|
|
#while (Count < 360)
|
|
#declare X=(r1*cos(radians( dsk ))+R)*sin(radians( Count ));
|
|
#declare Z=(r1*cos(radians( dsk ))+R)*cos(radians( Count ));
|
|
#declare Y=r1*sin(radians( dsk ));
|
|
object {
|
|
DUESE
|
|
rotate < dsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z, >
|
|
}
|
|
#declare Count=Count+30;
|
|
#end
|
|
#declare Count = 15;
|
|
#while (Count < 360)
|
|
#declare X=(r1*cos(radians( -dsk ))+R)*sin(radians( Count ));
|
|
#declare Z=(r1*cos(radians( -dsk ))+R)*cos(radians( Count ));
|
|
#declare Y=r1*sin(radians( -dsk ));
|
|
object {
|
|
DUESE
|
|
rotate <180-dsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z, >
|
|
}
|
|
#declare Count=Count+30;
|
|
#end
|
|
}
|
|
bounded_by {
|
|
cylinder {
|
|
< 0, -wr, 0 >,
|
|
< 0, wr, 0 >,
|
|
R+wr
|
|
}
|
|
}
|
|
} // end object
|
|
|
|
//---------------------------------------------------
|
|
// Geschützkuppeln
|
|
|
|
#declare GSROHR =
|
|
lathe {
|
|
linear_spline
|
|
16,
|
|
<0, 0>,
|
|
<0.1, 0>,
|
|
<0.10, 1.03>, <0.15, 1.03>, <0.15, 1.05>, <0.10, 1.05>,
|
|
<0.10, 1.07>, <0.15, 1.07>, <0.15, 1.09>, <0.10, 1.09>,
|
|
<0.10, 1.11>, <0.15, 1.11>, <0.11, 1.25>, <0.08, 1.25>, <0.08, 1.0>,
|
|
<0, 1.0>
|
|
|
|
texture { TERKONIT
|
|
}
|
|
} // end lathe
|
|
|
|
#declare GSKUPPEL_1 =
|
|
object {
|
|
union {
|
|
sphere {
|
|
< 0, 0, 0 >, 1
|
|
texture { TERKONIT }
|
|
scale < 1, 0.75, 1 >
|
|
}
|
|
object { GSROHR }
|
|
scale 0.8
|
|
}
|
|
scale 3
|
|
} // end obj
|
|
|
|
|
|
#declare GSKUPPEL_2 =
|
|
object {
|
|
union {
|
|
sphere {
|
|
< 0, 0, 0 >, 1
|
|
texture { TERKONIT }
|
|
scale < 1, 0.75, 1 >
|
|
}
|
|
object { GSROHR }
|
|
scale 0.8
|
|
}
|
|
scale 4
|
|
} // end obj
|
|
|
|
#declare rgs = R - 1.0;
|
|
|
|
#declare GSKP =
|
|
union {
|
|
sphere { < 0, 0, 0 >, 1
|
|
texture { TERKONIT }
|
|
scale <1, 0.5, 1>
|
|
}
|
|
union {
|
|
object { GSROHR }
|
|
cylinder {
|
|
< 0.1, 0, 0 >
|
|
< 0.1, 1.0, 0 >, 0.05
|
|
}
|
|
cylinder {
|
|
< -0.1, 0, 0 >
|
|
< -0.1, 1.0, 0 >, 0.05
|
|
}
|
|
cylinder {
|
|
< 0, 0, 0.1 >
|
|
< 0, 1.0, 0.1 >, 0.05
|
|
}
|
|
cylinder {
|
|
< 0, 0, -0.1 >
|
|
< 0, 1.0, -0.1 >, 0.05
|
|
}
|
|
texture { TERKONIT }
|
|
scale 0.7
|
|
rotate < -40, 0, 0 >
|
|
}
|
|
scale 7
|
|
translate rgs*y
|
|
}
|
|
|
|
#declare rgs = R - 0.5;
|
|
#declare Count = 45;
|
|
#declare wgsk = 50;
|
|
#declare GSKR1 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
GSKUPPEL_1
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+90;
|
|
#end
|
|
}
|
|
|
|
#declare Count = 0;
|
|
#declare wgsk = 25;
|
|
#declare GSKR2 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
GSKUPPEL_2
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+45;
|
|
#end
|
|
}
|
|
|
|
#declare Count = 0;
|
|
#declare wgsk = -25;
|
|
#declare GSKR3 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
GSKUPPEL_2
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+45;
|
|
#end
|
|
}
|
|
|
|
#declare Count = 45;
|
|
#declare wgsk = -50;
|
|
#declare GSKR4 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
GSKUPPEL_1
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+90;
|
|
#end
|
|
}
|
|
|
|
//---------------------------------------------------
|
|
// Schutzschirmprojektor
|
|
|
|
#declare SSPROJ =
|
|
union {
|
|
cylinder {
|
|
< -1.0 0, 0 >,
|
|
< 1.0, 0, 0 >,
|
|
0.2
|
|
}
|
|
sphere {
|
|
< 0.0, 0, 0 >, 1.0
|
|
scale < 0.5, 0.25, 0.3 >
|
|
translate < -1, 0, 0>
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >, 1.0
|
|
scale < 0.55, 0.3, 0.35 >
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >, 1.0
|
|
scale < 0.5, 0.25, 0.3 >
|
|
translate < 1, 0, 0>
|
|
}
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare rgs = R - 0.5;
|
|
#declare Count = 0;
|
|
#declare wgsk = 52;
|
|
#declare SSKR1 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
SSPROJ
|
|
scale 3
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+90;
|
|
#end
|
|
}
|
|
|
|
#declare Count = 0;
|
|
#declare wgsk = -45;
|
|
#declare SSKR2 =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
|
|
#declare Y=rgs*sin(radians( wgsk ));
|
|
object {
|
|
SSPROJ
|
|
scale 3
|
|
rotate < 90-wgsk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+90;
|
|
#end
|
|
}
|
|
|
|
//---------------------------------------------------
|
|
// Landeteller und Landestützen
|
|
|
|
#declare wldst = 15;
|
|
|
|
#declare LDST =
|
|
union{
|
|
cylinder {
|
|
< 0, 0.0, 0 >, < 0, -11.0, 0 >, 1.25
|
|
}
|
|
cylinder {
|
|
< 0, -11.0, 0 >, < 0, -22.0, 0 >, 1.0
|
|
}
|
|
cylinder {
|
|
< 0, -22.0, 0 >, < 0, -32.0, 0 >, 0.75
|
|
}
|
|
union {
|
|
difference {
|
|
sphere { < 0, 0, 0 >, 1
|
|
}
|
|
cylinder {
|
|
< 0, -0.1, 0 >, < 0, -1.1, 0 >, 1.25
|
|
}
|
|
}
|
|
cylinder {
|
|
< 0, 0.0, 0 >, < 0, -0.7, 0 >, 3.0
|
|
}
|
|
rotate < 0, 0, -wldst >
|
|
translate < 0, -32.0, 0 >
|
|
}
|
|
rotate < 0, 0, wldst >
|
|
}
|
|
|
|
#declare Count = 15;
|
|
#declare wltk = -35;
|
|
#declare rlt = R -0.3;
|
|
|
|
#ifdef (_STUETZE)
|
|
#declare LTKR =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rlt*sin(radians( Count ))*cos(radians( wltk ));
|
|
#declare Z=rlt*cos(radians( Count ))*cos(radians( wltk ));
|
|
#declare Y=rlt*sin(radians( wltk ));
|
|
object {
|
|
LDST
|
|
rotate < 0, -90, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+30;
|
|
#end
|
|
texture { TERKONIT }
|
|
}
|
|
#else
|
|
#declare LTKR =
|
|
union{
|
|
#while (Count < 360)
|
|
#declare X=rlt*sin(radians( Count ))*cos(radians( wltk ));
|
|
#declare Z=rlt*cos(radians( Count ))*cos(radians( wltk ));
|
|
#declare Y=rlt*sin(radians( wltk ));
|
|
cylinder {
|
|
< 0, 0.6, 0 >
|
|
< 0, 0, 0 >, 3
|
|
rotate < 90-wltk, 0, 0 >
|
|
rotate < 0, Count, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare Count=Count+30;
|
|
#end
|
|
texture { TERKONIT }
|
|
}
|
|
#end
|
|
|
|
//---------------------------------------------------
|
|
// Orter
|
|
|
|
#declare _ORTER_1 =
|
|
lathe {
|
|
cubic_spline
|
|
15,
|
|
<0, 0>,
|
|
<0, 0>,
|
|
<2.0, 0.0>,<1.0, 0.5>,<0.8, 0.9>, <1.0, 1.0>,
|
|
<1.250, 1.000>,<1.427, 1.073>,<1.500, 1.250>,<1.427, 1.427>,
|
|
<1.250, 1.500>, <0.5, 1.500>, < 0.177, 1.677 >
|
|
<0, 1.75>,
|
|
<0, 1.75>
|
|
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare _O_STAB =
|
|
union {
|
|
cylinder {
|
|
< 0, 0, 0 >,
|
|
< 0, 2.0, 0 >,
|
|
0.15
|
|
}
|
|
sphere {
|
|
< 0, 2.0, 0 >,
|
|
0.2
|
|
}
|
|
}
|
|
|
|
#declare _ORTER_2 =
|
|
union {
|
|
sphere {
|
|
< 0, 0.0, 0 >,
|
|
1.0
|
|
scale < 1.0, 0.5, 1.0 >
|
|
}
|
|
cylinder {
|
|
< 0, 0, 0 >,
|
|
< 0, 1.0, 0 >,
|
|
0.5
|
|
}
|
|
sphere {
|
|
< 0, 1.0, 0 >,
|
|
0.5
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >,
|
|
0.5
|
|
scale < 0.5, 1, 1 >
|
|
translate < 0.5, 1.0, 0 >
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >,
|
|
0.5
|
|
scale < 0.5, 1, 1 >
|
|
translate < -0.5, 1.0, 0 >
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >,
|
|
0.5
|
|
scale < 1, 1, 0.5 >
|
|
translate < 0, 1.0, 0.5 >
|
|
}
|
|
sphere {
|
|
< 0.0, 0.0, 0 >,
|
|
0.5
|
|
scale < 1, 1, 0.5 >
|
|
translate < 0, 1.0, -0.5 >
|
|
}
|
|
cylinder {
|
|
< 0, 1.5, 0 >,
|
|
< 0, 2.2, 0 >,
|
|
0.2
|
|
}
|
|
lathe {
|
|
cubic_spline
|
|
13,
|
|
<0, 0>,
|
|
<0, 0>,
|
|
<0.283, 0.117>, <0.400, 0.400>,
|
|
<0.41, 0.40>, <0.90, 0.40>,
|
|
<0.935, 0.415>, <1.000, 0.45>,<0.935, 0.485>,
|
|
<0.90, 0.50>, <0.50, 0.55>,
|
|
<0, 0.55>,
|
|
<0, 0.55>
|
|
scale < 1.5, 1, 0.5 >
|
|
rotate < 60, 0, 0>
|
|
translate < 0, 2.1, 0 >
|
|
}
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare wank = 65;
|
|
#declare rank = R-0.2;
|
|
#declare Y=rank*sin(radians( wank ));
|
|
#declare ORTER =
|
|
union {
|
|
#declare X=rank*sin(radians( 0 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( 0 ))*cos(radians( wank ));
|
|
object {
|
|
_ORTER_2
|
|
//rotate < 0, 90, 0 >
|
|
translate < X, Y-0.1, Z >
|
|
}
|
|
#declare X=rank*sin(radians( 120 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( 120 ))*cos(radians( wank ));
|
|
object {
|
|
_ORTER_1
|
|
rotate < 90-wank, 0, 0 >
|
|
rotate < 0, 120, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
#declare X=rank*sin(radians( 240 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( 240 ))*cos(radians( wank ));
|
|
object {
|
|
_ORTER_1
|
|
rotate < 90-wank, 0, 0 >
|
|
rotate < 0, 240, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
} // end union
|
|
|
|
//---------------------------------------------------
|
|
// Antennen
|
|
|
|
#declare _ANTENNE_1 =
|
|
lathe {
|
|
cubic_spline
|
|
17,
|
|
<0.0, 0>,
|
|
<0.0, 0>,
|
|
<1.0, 0.0>,<0.4, 1.29>,
|
|
<0.4, 1.300>,<0.541, 1.359>,<0.600, 1.500>,<0.541, 1.641>,
|
|
<0.4, 1.7>,<0.4, 1.89>,
|
|
<0.410, 1.900>, <0.495, 1.976>, <0.700, 2.400>, <0.495, 2.824>, <0.100, 2.999>,
|
|
<0, 3.0>,
|
|
<0, 3.0>
|
|
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare _A_STAB_1 =
|
|
union {
|
|
cylinder {
|
|
< 0, 0, 0 >,
|
|
< 0, 3.0, 0 >,
|
|
0.4
|
|
}
|
|
sphere {
|
|
< 0, 3.0, 0 >,
|
|
0.45
|
|
}
|
|
}
|
|
|
|
#declare _ANTENNE_2 =
|
|
union {
|
|
object {
|
|
_A_STAB_1
|
|
translate < 0.0, 0.0, 0.0 >
|
|
}
|
|
object {
|
|
_A_STAB_1
|
|
translate < -1.2, -0.6, -1.2 >
|
|
}
|
|
object {
|
|
_A_STAB_1
|
|
translate < -1.2, -1.4, 1.2 >
|
|
}
|
|
object {
|
|
_A_STAB_1
|
|
translate < 1.2, -1.3, 1.2 >
|
|
}
|
|
object {
|
|
_A_STAB_1
|
|
translate < 1.2, -0.5, -1.2 >
|
|
}
|
|
sphere {
|
|
< 0, 0.0, 0 >,
|
|
1.0
|
|
scale < 4.0, 2.0, 4.0 >
|
|
rotate < 90-wank, 0, 0 >
|
|
translate < 0, -0.9, -0.9>
|
|
}
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare _A_STAB =
|
|
union {
|
|
cylinder {
|
|
< 0, 0, 0 >,
|
|
< 0, 2.0, 0 >,
|
|
0.15
|
|
}
|
|
sphere {
|
|
< 0, 2.0, 0 >,
|
|
0.2
|
|
}
|
|
}
|
|
|
|
#declare _ANTENNE_3 =
|
|
union {
|
|
lathe {
|
|
cubic_spline
|
|
25,
|
|
<0, 0>,
|
|
<0, 0>,
|
|
<1.50, 0.00>, <0.76, 0.80>,
|
|
<0.800, 0.800>, <1.141, 0.859>, <1.200, 1.000>, <1.141, 1.141>, <0.700, 1.200>,
|
|
<0.64, 1.20>, <0.47, 1.80>,
|
|
<0.500, 1.800>, <0.641, 1.859>, <0.700, 2.000>, <0.641, 2.141>, <0.400, 2.200>,
|
|
<0.35, 2.20>,<0.20, 2.70>,
|
|
<0.210, 2.700>, <0.212, 2.788>, <0.300, 3.000>, <0.212, 3.212>, <0.05, 3.299>,
|
|
<0, 3.3>,
|
|
<0, 3.3>
|
|
}
|
|
object {
|
|
_A_STAB
|
|
rotate < 0, 0, -10 >
|
|
translate < 1.0, 0, 0 >
|
|
}
|
|
object {
|
|
_A_STAB
|
|
rotate < 0, 0, 10 >
|
|
translate < -1.0, 0, 0 >
|
|
}
|
|
object {
|
|
_A_STAB
|
|
rotate < 10, 0, 0 >
|
|
translate < 0, 0, 1.0 >
|
|
}
|
|
object {
|
|
_A_STAB
|
|
rotate < -10, 0, 0 >
|
|
translate < 0, 0, -1.0 >
|
|
}
|
|
texture { TERKONIT }
|
|
}
|
|
|
|
#declare Y=rank*sin(radians( wank ));
|
|
#declare ANTENNE =
|
|
union {
|
|
#declare X=rank*sin(radians( 60 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( 60 ))*cos(radians( wank ));
|
|
object {
|
|
_ANTENNE_1
|
|
scale 1.6
|
|
translate < X, Y-0.1, Z >
|
|
}
|
|
#declare X=rank*sin(radians( -60 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( -60 ))*cos(radians( wank ));
|
|
object {
|
|
_ANTENNE_3
|
|
translate < X, Y-0.1, Z >
|
|
}
|
|
#declare X=rank*sin(radians( 180 ))*cos(radians( wank ));
|
|
#declare Z=rank*cos(radians( 180 ))*cos(radians( wank ));
|
|
object {
|
|
_ANTENNE_2
|
|
rotate < 0, 180, 0 >
|
|
translate < X, Y, Z >
|
|
}
|
|
} // end union
|
|
|
|
//---------------------------------------------------
|
|
// Beobachtungskuppel
|
|
|
|
#declare wbk = 66;
|
|
#declare rbk = R-0.5;
|
|
#declare Y=rbk*sin(radians( wbk ));
|
|
#declare X=rbk*sin(radians( 210 ))*cos(radians( wbk ));
|
|
#declare Z=rbk*cos(radians( 210 ))*cos(radians( wbk ));
|
|
#declare BKPL =
|
|
sphere {
|
|
< 0, 0, 0 >, 1
|
|
hollow
|
|
texture { _T_GSK }
|
|
scale < 1, 0.5, 1 >
|
|
scale 4
|
|
rotate < 90-wbk, 0, 0 >
|
|
rotate < 0, 210, 0 >
|
|
translate < X, Y, Z >
|
|
} // end sphere
|
|
|
|
//---------------------------------------------------
|
|
// Raumer
|
|
|
|
#declare KR100 =
|
|
union {
|
|
object { SCHALE
|
|
texture {
|
|
_T_SCHALE
|
|
}
|
|
}
|
|
object { MANNSCHL }
|
|
object { HANGAR_B }
|
|
object { HANGAR_23 }
|
|
object { HANGAR_4 }
|
|
object { WULST
|
|
texture {
|
|
_T_SCHALE
|
|
}
|
|
}
|
|
object { GSKP }
|
|
object { GSKR1 }
|
|
object { GSKR2 }
|
|
object { GSKR3 }
|
|
object { GSKR4 }
|
|
object { SSKR1 }
|
|
object { SSKR2 }
|
|
object { LTKR }
|
|
object { ORTER }
|
|
object { ANTENNE }
|
|
object { BKPL }
|
|
}
|
|
|
|
//---------------------------------------------------
|