#include "T_arkonstahl.pov"
#include "glass.inc"

#declare eps = 1E-3;

#declare gummi =
    texture {
	pigment {
	    color 0.2
	    
	}
    }

#declare trafo = 
    union {
	intersection {
	    sphere {
		0, 1
		scale <1.1, 4, 1.1>
	    }
	    box {
		<-1, 0, -1>
		<1, 4, 1>
	    }
	    texture { T_arkonstahl }
	}
	intersection {
	    sphere {
		0, 1
		scale <1.1, 2, 1.1>
		texture { T_Copper_3D }
	    }
	    box {
		<-1, 1.2, -1>
		<1, 2, 1>
	    }
	    translate <0, 2.3, 0>
	}
	intersection {
	    sphere {
		0, 1
		scale <1.1, 2, 1.1>
		texture { T_Copper_3D }
	    }
	    box {
		<-1, 1.4, -1>
		<1, 2, 1>
	    }
	    translate <0, 2.6, 0>
	}
    }

#declare andruckabsorber1 = 
    union {
	
	box {
	    <4, 0, -2>
	    <5, 2, +2>
	}
	intersection {
	    cylinder {
		<5, 0, 0>
		<6, 0, 0>
		4
	    }
	    box {
		<5-eps, 0, -4>
		<6+eps, 4, +4>
	    }
	    scale <1, 1, 3/4>
	}
	cylinder {
	    <6, 2, 0>
	    <7, 2, 0>
	    2
	}
	cone {
	    <7, 2, 0>, 1.8
	    <9, 2, 0>, 1.3
	}
	cone {
	    <9,   2, 0>, 1.3
	    <9.2, 2, 0>, 1.5
	}
	cylinder {
	    < 9.2, 2, 0>
	    <10.0, 2, 0>
	    1.7
	}
	superellipsoid {
	    <0.1, 0.1>
	    scale <1, 2, 3>
	    translate <11, 2, 0>
	}

	union {
	    box {
		<0, 0, 0>, <1.4, 0.9, -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}
		}
	    }
	    matrix <		// swap x<->z		// swap x<->z
		0, 0, 1,
		0, 1, 0,
		1, 0, 0,
		0, 0, 0
	    >
	    translate <4, 1, -0.7>
	}
	texture { pigment { color White }}
    }

#declare andruckabsorber2 =
    union {
	superellipsoid {
	    <0.1, 0.1>
	    scale <1, 2, 2.5>
	    translate <12, 2, 0>
	}
	cone {
	    <13, 2, 0>, 2
	    <13.2, 2, 0>, 1.9
	}
	cone {
	    <13.2, 2, 0>, 1.7
	    <14.0, 2, 0>, 1.0
	}
	sphere {
	    <14.0, 2, 0>, 0.5
	    texture { T_Copper_3D }
	}
	texture { pigment { color White }}
    }


#declare andruckabsorber =
    union {
	#local I = 0; 
	#while (I < 360) 
	    object {
		andruckabsorber1
		rotate <0, I, 0>
	    }
	    #local I = I + 60;
	#end

	#local I = 15; 
	#while (I < 360) 
	    object {
		andruckabsorber2
		rotate <0, I, 0>
	    }
	    #local I = I + 30;
	#end
	#local I = 0; 
	#while (I < 360) 
	    object {
		trafo
		rotate <0, 45, 0>
		translate <13.5, 0, 0>
		rotate <0, I, 0>
	    }
	    #local I = I + 30;
	#end
    }
