#include "treibstofftank.pov"
#include "landestuetze.pov"
#include "feldschirm_projektor_v.pov"

#local Z = -40;

#local treibstofftank_block =
    union {
        #local rr = 15.5;
	#local rr2 = sqrt(48*48 - Z*Z);
	#while (rr < rr2) 
	    #local da = degrees(asin(0.5/rr))*2;
	    #if (rr < 21) 
		#local aa = degrees(asin(0.5/rr));
	    #else 
		#local aa = degrees(asin(2.6/rr));
	    #end
	    #local ae = 15 - degrees(asin(0.5/rr));
	    #local n = int((ae-aa)/da);
	    #local da = (ae-aa)/n;
	    #local i = 0;
	    #while (i <= n) 
		#local ss = 1;
		#ifdef (SCHNITT_1)
		    #local pp = vrotate(<rr, 0, 0>, <0, aa, 0>);
		    #if (pp.x < 0 & pp.z < 0) 
			#local ss = 0;
		    #end
		#end
		#if (ss) 
		    object {
			treibstofftank
			translate <rr, -39.8, 0>
			rotate <0, aa, 0>
		    }
		#end
		#local aa = aa + da;
		#local i = i + 1;
	    #end
	    #local rr = rr + 1.0;
	#end
    }

#declare deck_03 = 
    union {
	#if (1)
	intersection {
	    union {
		difference {
		    object { huelle }
		    // Ausschnitte
		    #local i = 0;
		    #while (i < 12) 
			object { 
			    landestuetze_neg
			    rotate <0, i * 30, 0>
			}
			#local i = i + 1;
		    #end
		}
	    }
	    box {
		< 50, -40,  50>
		<-50, -35, -50>
	    }
	}
	#end
	difference {
	    cone {
		<0, -40.2, 0> 29.5
		<0, -39.8, 0> 30.0
		texture { T_arkonstahl }
	    }
	    // AG
	    cylinder {
		<0, -39, 0> <0, -41, 0> 2
	    }
	    #ifdef (SCHNITT_1)
	    intersection {
		torus {
		    28, 13
		}
		plane { 
		    <0, 0, -1> 0
		    rotate <0, 45, 0>
		}
		plane { 
		    <0, 0, +1> 0
		    rotate <0, -45, 0>
		}
		rotate <0, 135, 0>
		translate <0, -40.0, 0>
	    }
	    #end
	}
	#local aa = 0;
	#local da = 60;
	#while (aa <= 360 - da) 
	    object {
		feldschirm_projektor_v
		rotate <0, aa, 0>
	    }
	    #local aa = aa + da;
	#end

	// Ausschnitt f. Landestützen
	#local aa = 0;
	#while (aa < 360 ) 
	    difference {
		union {
		    cone {
			<23, Z+0.2, 0>, 2.1
			<23, Z+4.8, 0>, 2.1
		    }
		    box {
			<23, Z+0.2, -2.1>
			<28, Z+4.8, +2.1>
		    }
		    cone {
			<28, Z+0.2, 0>, 2.1
			<28, Z+4.8, 0>, 2.1
		    }
		    texture { T_arkonstahl }
		    rotate <0, aa, 0>
		}
		union {
		    cone {
			<23, Z+0.1, 0>, 2
			<23, Z+4.9, 0>, 2
		    }
		    box {
			<23, Z+0.1, -2>
			<28, Z+4.9, +2>
		    }
		    cone {
			<28, Z+0.1, 0>, 2
			<28, Z+4.9, 0>, 2
		    }
		    texture { T_arkonstahl }
		    rotate <0, aa, 0>
		}
	    }
	    #local aa = aa + 30;
	#end

	#local ii = 0;
	#while (ii < 12) 
	    object {
		treibstofftank_block 
		rotate <0, ii*30, 0>
	    }
	    object {
		treibstofftank_block 
		scale <1, 1, -1>
		rotate <0, ii*30, 0>
	    }
	    #local ii = ii + 1;
	#end


    }
