/* Parameter: * R1, R2: Durchmesser des Torus */ #declare Hangars_Ringwulst_neg = difference { union { #declare i = 10 #declare ii = 10 #while (i < 360) union { box { <-50, 40, 0> < 50, 80, R1+R2> } box { <-50, 120, 0> < 50, 220, R1+R2> } box { <-50, -40, 0> < 50, -80, R1+R2> } box { <-50, -120, 0> < 50, -220, R1+R2> } rotate <0, i, 0> } #declare i = i + ii #declare ii = 30 - ii #end } torus { R1, R2-10 } texture { Ynkelonium_Texture } } #declare Geschuetze_Ringwulst_aussen = union { #declare w = -45 #while (w <= 45) #declare i = 10 #declare ii = 10 #while (i < 360) union { sphere { <0, 0, 0> 20 } cone { <0, 0, 0> 10 <30, 30, 0> 5 } cone { <0, 0, 0> 10 <30, -30, 0> 5 } translate rotate <0, 0, w> translate rotate <0, i, 0> } #declare i = i + ii #declare ii = 30 - ii #end #declare w = w + 90 #end texture { Ynkelonium_Texture } } #declare Geschuetze_Ringwulst_mitte = union { #declare w = 0 #while (w <= 0) #declare i = 0 #while (i < 360) union { sphere { <0, 0, 0> 20 } cone { <0, 0, 0> 10 <30, 30, 0> 5 } cone { <0, 0, 0> 10 <30, -30, 0> 5 } translate rotate <0, 0, w> translate rotate <0, i, 0> } #declare i = i + 10 #end #declare w = w + 90 #end texture { Ynkelonium_Texture } } #declare Ringwulst = union { difference { torus { R1, R2 } #declare i = 0 #while (i < 360) object { Triebwerk_neg rotate <0, 0, 45> translate rotate <0, i, 0> } object { Triebwerk_neg rotate <0, 0, -45> translate rotate <0, i, 0> } #declare i = i + 30 #end object {Hangars_Ringwulst_neg} } cone { <0, -R2, 0>, R1, <0, R2, 0>, R1 } object {Geschuetze_Ringwulst_aussen} object {Geschuetze_Ringwulst_mitte} texture { Ynkelonium_Texture } }