/* * H E X A C O N E */ // ======================================================= #declare Benz_Cone_Base = object { #local RA = 0.120; #local RB = 0.001; union { cone { 0, RA, y, RB } sphere { 0, RA*1.098 scale <1, 0.62, 3.2> translate -0.02*y } } } #macro Benz_Cones () // = object // { union { #for (foo, 0, 360, 60) #local E = 0.40; #local Tx = E * sin(radians(foo)); #local Ty = E * cos(radians(foo)); object { Benz_Cone_Base #if ( rand(Rng1) < 0.5 ) texture { Soft_Silver scale 16.50 } #else texture { T_Brass_2C scale 13.50 } #end rotate -z*foo translate } #end } // } #end // ------------------------------------------------------ #local RT = 0.24; #local LT = 0.61; #declare Benz_Tubules = object { union { #local E = 0.17; #local R = 0.010; #for (foo, 0, 360, 20) #local Tx = E * sin(radians(foo)); #local Ty = E * cos(radians(foo)); #local Dz = z * 1.09; cylinder { -Dz, Dz, R translate } sphere { -Dz, R translate } sphere { Dz, R translate } #end } #if ( rand(Rng1) < 0.333) texture { Orange_Glass } #else texture { Yellow_Glass } #end } #declare Benz_Fuseau = object { sphere { 0, RT*0.39 scale <1, 1, 9> } texture { Gold_Nugget scale 0.56 } } #declare Benz_Cylindre = object { difference { union { cylinder { z*LT*1.6, -z*LT, RT } sphere { z*LT*1.5, RT*0.72 translate y*RT*0.87} } cylinder { z*4, -z*4, RT*0.95 } } texture { Soft_Silver scale 6.0 } } #declare Benz_Tube = object { union { object { Benz_Tubules } object { Benz_Fuseau } object { Benz_Cylindre } } } // ------------------------------------------------------ #declare HexaBenz = object { union { #local Rk = rand(Rng1) * 666.666; object { Benz_Cones () rotate z*NormClock*Rk} object { Benz_Tube } } }