/* * H E X A W O O D */ // ======================================================= // ------------------------------------------------------- #macro HW_Un_Cone () merge { #local RA = R_basecone * 0.92; cone { 0, RA, y*0.91, 0.000001 } sphere { 0, RA } #undef RA } #end #macro HW_Cones () union { #for (foo, 0, 360, 60) #local E = 0.58; #local Tx = 1.414 * E * sin(radians(foo)); #local Tz = E * cos(radians(foo)); object { HW_Un_Cone () #if ( rand(Rng1) < 0.5 ) texture { T_Wood32 rotate 37 scale 1.30 } // texture { WIP_color } #else texture { T_Wood23 rotate x*87 scale 1.23 } // texture { T_WIP_alert } #end // rotate -z*foo translate } #end // end for } #end #macro HW_Chassis () difference { #local El = 1.414; merge { torus { 0.70, 0.20 translate y*0.20 } cylinder { 0, y*0.40, 0.70 } scale } cylinder { -1*y, 0.12*y, 0.08 } #for (foo, 0, 360, 60) #local E = 0.58; #local Tx = El * E * sin(radians(foo)); #local Tz = E * cos(radians(foo)); sphere { 0, 0.17 translate } #end #for (foo, 0, 360, 60) #local E = 0.84; #local Tx = El * E * sin(radians(foo+30)); #local Tz = E * cos(radians(foo+30)); cylinder { -y, y, 0.05 translate } #end translate y*0.10 texture { T_Wood17 scale 0.92 } } #end #macro HW_une_patte () merge { cylinder { 0, 0.30*y, 0.02 } sphere { 0, 0.07 scale <1, 0.27, 1> } } #if ( rand(Rng1) < 0.3 ) texture { Tinny_Brass } #else texture { New_Penny } #end // if #end // macro #declare HW_les_pattes = object { union { #local E = 0.84; #local El = 1.414; #for (foo, 0, 360, 60) #local Tx = El * E * sin(radians(foo+30)); #local Tz = E * cos(radians(foo+30)); object { HW_une_patte () translate } #end } } #declare HexaWood = object { union { object { HW_Chassis () } object { HW_les_pattes } light_source { 0.20*y rgb <0, 0.20, 0.95> } object { HW_Cones () translate y*0.15 } } } // =======================================================