#include "colors.inc" #include "textures.inc" #include "shapes.inc" #include "chars.inc" /* Anvil & hammer Randall Gray (gray@ml.csiro.au) */ /* Good steel colour */ #declare Steel = color rgb <0.43, 0.46, 0.49> #declare Weathered_Steel = color rgb <0.39, 0.36, 0.30> #declare Weathered_Steel1 = color rgb <0.36, 0.32, 0.26> #declare Weathered_Steel2 = color rgb <0.33, 0.30, 0.23> /* Octagonal Solid, axis along x */ #declare Octagon = intersection {plane {z, 1} /* Rotate 90 in z axis to stand up */ plane {z, 1 rotate < 45, 0, 0>} plane {z, 1 rotate < 90, 0, 0>} plane {z, 1 rotate <135, 0, 0>} plane {z, 1 rotate <180, 0, 0>} plane {z, 1 rotate <225, 0, 0>} plane {z, 1 rotate <270, 0, 0>} plane {z, 1 rotate <315, 0, 0>} plane { x, 1} plane {-x, 1} } #declare Black_Iron = texture { pigment { agate agate_turb 1.0 color_map { [0.0, 0.3 color Weathered_Steel2 color Weathered_Steel1] [0.3, 0.6 color Weathered_Steel1 color Steel] [0.6, 1.001 color Weathered_Steel1 color Weathered_Steel2] } /* color_map { [0.0, 0.3 color VeryDarkBrown color Weathered_Steel] [0.3, 0.6 color Weathered_Steel color Steel] [0.6, 1.001 color Weathered_Steel color VeryDarkBrown] } */ scale 0.03 omega 0.4 } finish { metallic ambient 0.6 diffuse 0.7 brilliance 2 reflection 0.15 } normal {dents 0.75} } #declare Anvil_Iron = texture { pigment { bozo color_map { [0.0, 0.2 color Weathered_Steel1 color Weathered_Steel2] [0.2 0.5 color Weathered_Steel2 color Weathered_Steel2] [0.5 1.0 color Weathered_Steel2 color Weathered_Steel1] } /* color_map { [0.0, 0.5 color VeryDarkBrown color Weathered_Steel] [0.5 1.0 color Weathered_Steel color VeryDarkBrown] } */ scale 0.06 quick_color Weathered_Steel } finish { metallic ambient 0.6 diffuse 0.7 brilliance 3 reflection 0.15 } normal {dents 0.003 scale 0.005 } } #declare Maker = object { union { object { char_R translate <-12.5, 6, 0> } sphere { <-7.5, 6.5, 0> 1 } object { char_G translate <-2.5, 6, 0> } object { char_R translate <2.5, 6, 0> } object { char_A translate <7.5, 6, 0> } object { char_Y translate <12.5, 6, 0> } object { char_Amps translate <0, 0, 0> } object { char_S translate <-5, -6, 0> } object { char_O translate <0, -6, 0> } object { char_N translate <5, -6, 0> } } scale <0.2, 0.2, 1.0> // bring chars down to a meter scale <0.01, 0.01, 0.01> // now a centimeter pigment {Gray15} bounded_by { box {<-0.05, -0.015, -0.01> , <0.05, 0.03, 0.01>} } } #declare Anvil = object { union { difference { // body union { box { <-0.25, 0.125, -0.07>, <0.25, 0.25, 0.07> } intersection { quadric { <0, -100, 0>, <0, 0, 0>, <8.02, 0, 0>, 0 rotate <0, 0, -14> rotate <0, 90, 0> translate <0.0, 0.125, -0.07> } quadric { <0, -100, 0>, <0, 0, 0>, <8.02, 0, 0>, 0 rotate <0, 0, -14> rotate <0, 270, 0> translate <0.0, 0.125, 0.07> } quadric { <0, -100, 0>, <0, 0, 0>, <8.02, 0, 0>, 0 rotate <0, 0, -14> translate <0.08, 0.125, 0> } quadric { <0, -100, 0>, <0, 0, 0>, <8.02, 0, 0>, 0 rotate <0, 0, -14> translate <0.08, 0.125, 0> rotate <0, 180, 0> } plane { y, 0.125 } plane { -y, 0.0 } bounded_by { box { <-0.26, 0.126, -0.15>, <0.26, -0.00001, 0.15> } } } box { // face <-0.25, 0.25, -0.07>, <0.18, 0.26, 0.07> pigment { Weathered_Steel1 } finish { Metal ambient 0.6 } normal { dents 0.001 scale 0.001 } } } object { Maker scale <3.0, 2.0, 1.0> translate <0, 0.18, -0.07> } // object { // Maker // scale <3.0, 2.0, 1.0> // translate <0, 0.18, -0.07> // rotate <0, 180, 0> // } cylinder { // pritchel hole <-0.22, 0.124, 0.04>, <-0.22, 0.261, 0.04>, 0.01 } box { // Hardie hole <-0.18, 0.124, -0.01>, <-0.155, 0.261, 0.01> } box { // clip beak end <0.18, 0.125, -0.071>, <0.251, 0.261, 0.071> } quadric { <0, 100, 0>, <0, 0, 0>, <-8.02, 0, 0>, 0 translate <0.08, 0.125, 0> } quadric { <0, 100, 0>, <0, 0, 0>, <-8.02, 0, 0>, 0 translate <0.08, 0.125, 0> rotate <0, 180, 0> } cylinder { <-0.28, 0, 0>, <0.28, 0, 0> 1.0 scale <1.0, 0.04, 0.06> } cylinder { <0, 0, -0.28>, <0, 0, 0.28> 1.0 scale <0.1, 0.04, 1.0> } bounded_by { box { <-0.26, -0.1, -0.15>, <0.26, 0.27, 15> } } } box { // stage <0.18, 0.194, -0.045>, <0.23, 0.239, 0.045> } object { union { // Beak cylinder { <-8, -2.25, 0>, <4, -2.25, 0>, 2.25 } cone { <3.8400974233027, -2.25, 0> 2.2556748068005, <7.357864376269, -2.0, 0> 2.0050442727115 } cone { <7.1754446796632, -2.0, 0> 2.0261629144664, <8.7160140947053, -1.75, 0> 1.7728925501581 } cone { <8.5868810393754, -1.75, 0> 1.7981010193055, <9.6458980337503, -1.5, 0> 1.541229445119 } cone { <9.3786796564404, -1.5, 0> 1.6235883004386, <10.585786437627, -1.0, 0> 1.0823922002924 } cone { <10.5, -1.0, 0> 1.1180339887499, <12.5, 0.0, 0> 1.7763568394003e-15 } bounded_by { cylinder { <-8, -2.25, 0>, <12.5, -2.25, 0>, 2.25 } } } scale 1/50 translate <0.17, 0.239, 0> } } texture { Anvil_Iron } bounded_by { box { <-0.4, -0.01, -0.15> , <0.4, 0.3, 0.15>} } } #declare Hammer = object { union { cylinder { // handle <0, 0, 0>, <0.30, 0, 0>, 0.015 scale <1.0, 0.6, 1.0> pigment {Tom_Wood} } intersection { // head sphere { <0,0,0> 0.054 } object { Octagon scale <0.05, 0.025, 0.025> rotate <0, 90, 0> } pigment {Steel} finish {Metal} normal {dents 0.0001 scale 0.0001} } } finish { ambient 0.6 } bounded_by { box { <-0.03, -0.03, -0.06>, <0.31, 0.03, 0.06> } } } light_source {<-2, 2.0, -4> color rgb <1,1,1>} camera { location <0.6, 0.4, -0.7> look_at <0, 0.125, 0> } fog { color Gray70 distance 200.0 } plane { <0, -1, 0>, 0 texture { pigment { Wheat } } finish { ambient 0.4 } } object { Anvil rotate <0, 6, 0> } object { Hammer rotate <0, 5, -3.054> translate <-0.15, 0.285, 0.01> rotate <0, 6, 0> }