// definition of rules---------------------------------------------------------- #declare CAng = 35.264389682755; #declare R_01 = array[8] { transform { translate <-1,-1,-1> rotate <0, 45,-CAng> rotate 60*x rotate CAng*z rotate -45*y scale .38 translate < 1, 1, 1>*.76 } transform { translate <-1,-1, 1> rotate <0,-45,-CAng> rotate 60*x rotate CAng*z rotate 45*y scale .38 translate < 1, 1,-1>*.76 } transform { translate <-1, 1,-1> rotate <0, 45, CAng> rotate 60*x rotate -CAng*z rotate -45*y scale .38 translate < 1,-1, 1>*.76 } transform { translate < 1,-1,-1> rotate <0,-45, CAng> rotate 60*x rotate -CAng*z rotate 45*y scale .38 translate <-1, 1, 1>*.76 } transform { translate < 1, 1,-1> rotate <0,-45,-CAng> rotate 60*x rotate CAng*z rotate 45*y scale .38 translate <-1,-1, 1>*.76 } transform { translate < 1,-1, 1> rotate <0, 45, CAng> rotate 60*x rotate -CAng*z rotate -45*y scale .38 translate <-1, 1,-1>*.76 } transform { translate <-1, 1, 1> rotate <0,-45, CAng> rotate 60*x rotate -CAng*z rotate 45*y scale .38 translate < 1,-1,-1>*.76 } transform { translate < 1, 1, 1> rotate <0, 45,-CAng> rotate 60*x rotate CAng*z rotate -45*y scale .38 translate <-1,-1,-1>*.76 } } #declare S_01 = array[8]{.38,.38,.38,.38,.38,.38,.38,.38} #declare R_02 = array[7] { transform { scale .5 } transform { scale .25 translate <0,0, .75> } transform { scale .25 translate <0, .75,0> } transform { scale .25 translate < .75,0,0> } transform { scale .25 translate <0,0,-.75> } transform { scale .25 translate <0,-.75,0> } transform { scale .25 translate <-.75,0,0> } } #declare S_02 = array[7]{.5,.25,.25,.25,.25,.25,.25} #declare R_03 = array[9] { transform { scale .5 } transform { scale .25 translate < .75, .75, .75> } transform { scale .25 translate < .75, .75,-.75> } transform { scale .25 translate < .75,-.75, .75> } transform { scale .25 translate <-.75, .75, .75> } transform { scale .25 translate < .75,-.75,-.75> } transform { scale .25 translate <-.75, .75,-.75> } transform { scale .25 translate <-.75,-.75, .75> } transform { scale .25 translate <-.75,-.75,-.75> } } #declare S_03 = array[9]{.5,.25,.25,.25,.25,.25,.25,.25,.25} #declare R_04 = array[15] { transform { scale .5 } transform { scale .25 translate < .75, .75, .75> } transform { scale .25 translate < .75, .75,-.75> } transform { scale .25 translate < .75,-.75, .75> } transform { scale .25 translate <-.75, .75, .75> } transform { scale .25 translate < .75,-.75,-.75> } transform { scale .25 translate <-.75, .75,-.75> } transform { scale .25 translate <-.75,-.75, .75> } transform { scale .25 translate <-.75,-.75,-.75> } transform { scale .25 translate <0,0, .75> } transform { scale .25 translate <0, .75,0> } transform { scale .25 translate < .75,0,0> } transform { scale .25 translate <0,0,-.75> } transform { scale .25 translate <0,-.75,0> } transform { scale .25 translate <-.75,0,0> } } #declare S_04 = array[15]{.5,.25,.25,.25,.25,.25,.25,.25,.25,.25,.25,.25,.25,.25,.25} #declare R_05 = array[4] { transform { scale .5 translate <-.5,-.707107/2,0> } transform { scale .5 translate < .5,-.707107/2,0> } transform { scale .5 translate <0, .707107/2,-.5> } transform { scale .5 translate <0, .707107/2, .5> } } #declare S_05 = array[4]{.5,.5,.5,.5} #declare R_06 = array[9] { transform { translate <-1,-1,-1> rotate <0, 45,-CAng> rotate -25*x rotate CAng*z rotate -45*y scale .38 translate < 1, 1, 1>*.76 } transform { translate <-1,-1, 1> rotate <0,-45,-CAng> rotate -25*x rotate CAng*z rotate 45*y scale .38 translate < 1, 1,-1>*.76 } transform { translate <-1, 1,-1> rotate <0, 45, CAng> rotate -25*x rotate -CAng*z rotate -45*y scale .38 translate < 1,-1, 1>*.76 } transform { translate < 1,-1,-1> rotate <0,-45, CAng> rotate 25*x rotate -CAng*z rotate 45*y scale .38 translate <-1, 1, 1>*.76 } transform { translate < 1, 1,-1> rotate <0,-45,-CAng> rotate 25*x rotate CAng*z rotate 45*y scale .38 translate <-1,-1, 1>*.76 } transform { translate < 1,-1, 1> rotate <0, 45, CAng> rotate 25*x rotate -CAng*z rotate -45*y scale .38 translate <-1, 1,-1>*.76 } transform { translate <-1, 1, 1> rotate <0,-45, CAng> rotate -25*x rotate -CAng*z rotate 45*y scale .38 translate < 1,-1,-1>*.76 } transform { translate < 1, 1, 1> rotate <0, 45,-CAng> rotate 25*x rotate CAng*z rotate -45*y scale .38 translate <-1,-1,-1>*.76 } transform { scale .75 } } #declare S_06 = array[9]{.38,.38,.38,.38,.38,.38,.38,.38,.75} #declare R_07 = array[8] { transform { translate <-1,-1,-1> rotate <0, 45,-CAng> rotate 30*x rotate CAng*z rotate -45*y scale .45 translate < 1, 1, 1>*.9 } transform { translate <-1,-1, 1> rotate <0,-45,-CAng> rotate -30*x rotate CAng*z rotate 45*y scale .45 translate < 1, 1,-1>*.9 } transform { translate <-1, 1,-1> rotate <0, 45, CAng> rotate -30*x rotate -CAng*z rotate -45*y scale .45 translate < 1,-1, 1>*.9 } transform { translate < 1,-1,-1> rotate <0,-45, CAng> rotate 30*x rotate -CAng*z rotate 45*y scale .45 translate <-1, 1, 1>*.9 } transform { translate < 1, 1,-1> rotate <0,-45,-CAng> rotate -30*x rotate CAng*z rotate 45*y scale .45 translate <-1,-1, 1>*.9 } transform { translate < 1,-1, 1> rotate <0, 45, CAng> rotate -30*x rotate -CAng*z rotate -45*y scale .45 translate <-1, 1,-1>*.9 } transform { translate <-1, 1, 1> rotate <0,-45, CAng> rotate 30*x rotate -CAng*z rotate 45*y scale .45 translate < 1,-1,-1>*.9 } transform { translate < 1, 1, 1> rotate <0, 45,-CAng> rotate 30*x rotate CAng*z rotate -45*y scale .45 translate <-1,-1,-1>*.9 } //transform { scale .75 } } #declare S_07 = array[8]{.45,.45,.45,.45,.45,.45,.45,.45} #declare R_08 = array[6] { transform { scale .5 translate <-.5,-.707107/2,0>*.556186/.612372 } transform { scale .5 translate < .5,-.707107/2,0>*.556186/.612372 } transform { scale .5 translate <0, .707107/2,-.5>*.556186/.612372 } transform { scale .5 translate <0, .707107/2, .5>*.556186/.612372 } transform { scale .3333333 rotate 180*x } transform { scale .3333333 } } #declare S_08 = array[6]{.5,.5,.5,.5,.3333333,.3333333} #declare R_09 = array[7] { transform { scale 1/(sqrt(2)+1) } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*x translate <-sqrt(.5),0,0> } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*x translate < sqrt(.5),0,0> } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*y translate <0,-sqrt(.5),0> } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*y translate <0, sqrt(.5),0> } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*z translate <0,0,-sqrt(.5)> } transform { scale sqrt(.5)/(sqrt(2)+1) rotate 45*z translate <0,0, sqrt(.5)> } } #declare S_09 = array[7]{1/(sqrt(2)+1),sqrt(.5)/(sqrt(2)+1),sqrt(.5)/(sqrt(2)+1), sqrt(.5)/(sqrt(2)+1),sqrt(.5)/(sqrt(2)+1),sqrt(.5)/(sqrt(2)+1),sqrt(.5)/(sqrt(2)+1)} #declare R_10 = array[6] { transform { scale <1,1/3,1/3> translate <0,0,-2/3> } transform { scale <1,1/3,1/3> translate <0,0, 2/3> } transform { scale <1/3,1,1/3> translate <-2/3,0,0> } transform { scale <1/3,1,1/3> translate < 2/3,0,0> } transform { scale <1/3,1/3,1> translate <0,-2/3,0> } transform { scale <1/3,1/3,1> translate <0, 2/3,0> } } #declare S_10 = array[6]{1/3,1/3,1/3,1/3,1/3,1/3} #declare R_11 = array[13] { transform { scale <.5,.5,.25> translate <0,0, .75> } transform { scale <.5,.5,.25> translate <0,0,-.75> } transform { scale <.5,.25,.5> translate <0,-.75,0> } transform { scale <.5,.25,.5> translate <0, .75,0> } transform { scale <.25,.5,.5> translate <-.75,0,0> } transform { scale <.25,.5,.5> translate < .75,0,0> } transform { scale 1/6 translate <0,0,-1/3> } transform { scale 1/6 translate <0,0, 1/3> } transform { scale 1/6 translate <0,-1/3,0> } transform { scale 1/6 translate <0, 1/3,0> } transform { scale 1/6 translate <-1/3,0,0> } transform { scale 1/6 translate < 1/3,0,0> } transform { scale 1/6 } } #declare S_11 = array[13]{.4,.4,.4,.4,.4,.4,1/6,1/6,1/6,1/6,1/6,1/6,1/6}