#include "colors.inc" #include "textures.inc" #include "stones.inc" #declare Fluting = union { // use with difference to flute the column sphere { <0, 1, 0>,0.0625 } cylinder { <0, 1, 0>,<0, -1, 0>,0.0625 } sphere { <0, -1, 0>,0.0625 } } #declare Column = difference { // the column union { difference { // top of the column cylinder { <0, 2.5, 0>, <0, 2.75, 0>,0.625 } torus { 0.625, 0.125 translate <0, 2.5, 0> } } cylinder { // main cylinder of the column <0, 0.25, 0>, <0, 2.5, 0>,0.5 } difference { cylinder { <0, 0, 0>, <0, 0.25, 0>,0.625 } torus { 0.625, 0.125 translate <0, 0.25, 0> } } } union { // the vertical spaces in the main cylinder object { Fluting translate <0, 1.5, -0.5> } object { Fluting translate <0, 1.5, -0.5> rotate y * -30 } object { Fluting translate <0, 1.5, -0.5> rotate y * -60 } object { Fluting translate <0, 1.5, -0.5> rotate y * -90 } object { Fluting translate <0, 1.5, -0.5> rotate y * -120 } object { Fluting translate <0, 1.5, -0.5> rotate y * -150 } object { Fluting translate <0, 1.5, -0.5> rotate y * -180 } object { Fluting translate <0, 1.5, -0.5> rotate y * -210 } object { Fluting translate <0, 1.5, -0.5> rotate y * -240 } object { Fluting translate <0, 1.5, -0.5> rotate y * -270 } object { Fluting translate <0, 1.5, -0.5> rotate y * -300 } object { Fluting translate <0, 1.5, -0.5> rotate y * -330 } } bounded_by { cylinder { <0, 0, 0>, <0, 2.75, 0>,0.625 } } } object { Column texture { White_Marble finish { phong 1.0 phong_size 90 } } } sphere { <0, 3.5, 0>,0.5 texture { Stone21 } finish { reflection 0.3 } } object { Column translate <-2, 0, 0> texture { White_Marble finish { phong 1.0 phong_size 90 } } } box { <-0.25, -0.25, -0.25>, <0.25, 0.25, 0.25> rotate <45, 0, 35.2> translate <-2, 3.5, 0> texture { Stone9 } } object { Column translate <2, 0, 0> texture { White_Marble finish { phong 1.0 phong_size 90 } } } /*intersection { difference { cylinder { <0, 0, 0>, <0, 2, 0>,0.5 } torus { 0.5, 0.5 scale <1, 2, 1> translate <0, 1, 0> } } plane { y, 1 } bounded_by { cylinder { <0, 0, 0>, <0, 1, 0>, 0.5 } } translate <2, 3, 0> texture { Stone18 translate <1, 1.25, 1.25> finish { phong 1.0 phong_size 90 } } } */ union { sphere { <0, 0, 0>, 0.25 } cone { <0, -0.083333, 0>, 0.235702 <0, -0.75, 0>, 0 } bounded_by { box { <-0.25, -0.75, -0.25>, <0.25, 0.25, 0.25> } } translate <2, 3.75, 0> texture { Stone18 finish { reflection 0.3 } } } // the floor and the walls union { plane { y, 0 texture { Sapphire_Agate } } plane { x - z, -3 } plane { -x - z, -3 } texture { Polished_Chrome // finish { phong 0 diffuse 0 metallic } } } camera { location <0, 3.5, -5> look_at <0, 2, 0> } light_source { <3, 6, -2> color rgb <1.25, 1.25, 1.25> spotlight point_at <0, 2, 0> radius 25 falloff 35 tightness 5 } light_source { <-3, 6, -2> color rgb <1.25, 1.25, 1.25> spotlight point_at <0, 2, 0> radius 25 falloff 35 tightness 5 }