#include "colors.inc" #declare BoundingBox = box { < -3, 0, -3 >, < 3, 1, 3 > } #declare Prism = intersection { plane { < 1, 0, 1 >, sqrt(2)/2 } plane { -x, 0 } plane { -z, 0 } object { BoundingBox } } #declare Pyramid = intersection { plane { < 1, 1, 0 >, sqrt(2)/2 } plane { < 1, 1, 0 >, sqrt(2)/2 rotate 90*y} plane { < 1, 1, 0 >, sqrt(2)/2 rotate 180*y} plane { < 1, 1, 0 >, sqrt(2)/2 rotate 270*y} object { BoundingBox } } #declare Infinite_Block = intersection { plane { x, 1 } plane { x, 1 rotate 90*y } plane { x, 1 rotate 180*y } plane { x, 1 rotate 270*y } } #declare AngularCylinder = intersection { object { Infinite_Block } object { Infinite_Block rotate 45*y } object { BoundingBox } } object { Prism rotate 40*y translate -2.5*x pigment { color PaleGreen } finish { phong 1 ambient 0.2 } } object { Pyramid pigment { color SpringGreen } finish { phong 1 ambient 0.2 } translate -0.3*x } object { AngularCylinder translate 2.5*x pigment { color Green } finish { phong 1 ambient 0.2 } } light_source { < 0, 100, 0 > color White } light_source { < 100, 0, -100 > color Gray70 } light_source { < -100, 0, -100 > color Gray40 } camera { location < 50, 100, -100 > direction 30*z up y right 4/3*x look_at z }