// Landing Strut in normal position:
#include "ynkelonium_texture.pov"

#declare Half_Sphere = 
        intersection {
                sphere { <0, 0, 0>, 1}
                plane { <0, -1, 0>, 0}
                bounded_by { box {<-1, 0, -1>, <1, 1, 1>}}
        }


/*
 * Teleskoplandestütze: Die Variable Strut_Ext bestimmt, wie weit sie
 * ausgefahren ist:
 * 	0.0 vollständig eingezogem
 *	1.0 vollständig ausgefahren
 *
 * Normalstellung:
 * Boden bei -30 m == 100 - (60 + 50 + 40) * Strut_Ext - 20
 *           -30   ==  80 - 150 * Strut_Ext
 *	     110   ==       150 * Strut_Ext
 *	   11/15   ==             Strut_Ext
 */
#declare strut = 
        union {
                object {
                        Half_Sphere
                        scale 29
                        translate <0, 200, 0>
                }
                cone {
                        <0, 200, 0>, 29
                        <0, 100, 0>, 29
                }
		#declare Strut_Y_Off = 100 - 60 * Strut_Ext;
                cone {
                        <0, 90, 0>, 25
                        <0, 0, 0>, 25
                        translate <0, Strut_Y_Off, 0>
                }
		#declare Strut_Y_Off = Strut_Y_Off - 50 * Strut_Ext;
                cone {
                        <0, 80, 0>, 21
                        <0, 0, 0>, 21
                        translate <0, Strut_Y_Off, 0>
                }
		#declare Strut_Y_Off = Strut_Y_Off - 40 * Strut_Ext;
                cone {
                        <0, 70, 0>, 17
                        <0, 0, 0>, 17
                        translate <0, Strut_Y_Off, 0>
                }
		#declare Strut_Y_Off = Strut_Y_Off - 10;
                object {
                        Half_Sphere
                        scale 10
                        translate <0, Strut_Y_Off, 0>
			texture {pigment {color White*0.25}}
                }
		#declare Strut_i = 0;
		#while (Strut_i < 360)
		    cone {
			    <-4.0, 0, 10>, 6
			    < 4.0, 0, 10>, 6
			    rotate <0, Strut_i, 0>
			    translate <0, Strut_Y_Off, 0>
			    texture {pigment {color White*0.5}}
		    }
		    #declare Strut_i = Strut_i + 90;
		#end
                superellipsoid {
			<1, 0.25>
			rotate <90, 0, 0>
			scale <25, 5, 25>
                        translate <0, Strut_Y_Off-5, 0>
                }
		#declare Strut_Y_Off = Strut_Y_Off - 10;
		#declare Strut_i = 0;
		#while (Strut_i < 360)
		    superellipsoid {
			    <0.25, 0.25>
			    scale < 3, 0.5, 3>
			    translate <0, 0, 20>
			    rotate <0, Strut_i, 0>
			    translate <0, Strut_Y_Off, 0>
			    texture {pigment {color White*0.1}}
		    }
		    #declare Strut_i = Strut_i + 36;
		#end
                texture {Ynkelonium_Texture}
        }
