// Paterson BSP counterexample: interpenetrating cuboids #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions camera { location <0.0 , 1.5 ,-4.0> look_at <0.0 , 0.0 , 0.0> right x } // create a regular point light source light_source { 0*x // light's position (translated below) color red 1.5 green 1.0 blue 1.0 // light's color translate <-10, 20, -5> } light_source { 0*x // light's position (translated below) color red 1.0 green 1.5 blue 1.0 // light's color translate <0, 20, -15> } light_source { 0*x // light's position (translated below) color red 1.0 green 1.0 blue 1.5 // light's color translate <10, 20, -5> } // Light gray ground plane plane { y, -1.0 texture { pigment { color rgb <0.6,0.6,0.6> } finish { reflection 0.2 } } } // Create an infinite sphere around scene and allow any texture on it sky_sphere { pigment { gradient y color_map { [0.0 color blue 0.6] [1.0 color rgb 1] } } } #declare eps=0.03 #declare rr=6*clock*y #declare xbeam = box { <-1.4, 0-eps, 0-eps> <1.4, -.4+eps, -.4+eps> texture { pigment { color red 1 } } translate .4*y } #declare ybeam = box { <0-eps, -1.4, 0-eps> <-.4+eps, 1.4, -.4+eps> texture { pigment { color green 1 } } translate .4*y } #declare zbeam = box { <0-eps, 0-eps, -1.4> <-.4+eps, -.4+eps, 1.4> texture { pigment { color blue 1 } } translate .4*y } object { xbeam translate <0,1,.6> rotate rr } object { xbeam translate <0,1,-.2> rotate rr } object { xbeam translate <0,.2,.6> rotate rr } object { xbeam translate <0,.2,-.2> rotate rr } object { xbeam translate <0,-.6,.6> rotate rr } object { xbeam translate <0,-.6,-.2> rotate rr } object { ybeam translate <.6,0,1> rotate rr } object { ybeam translate <-.2,0,1> rotate rr } object { ybeam translate <.6,0,.2> rotate rr } object { ybeam translate <-.2,0,.2> rotate rr } object { ybeam translate <.6,0,-.6> rotate rr } object { ybeam translate <-.2,0,-.6> rotate rr } object { zbeam translate <1,.6,0> rotate rr } object { zbeam translate <1,-.2,0> rotate rr } object { zbeam translate <.2,.6,0> rotate rr } object { zbeam translate <.2,-.2,0> rotate rr } object { zbeam translate <-.6,.6,0> rotate rr } object { zbeam translate <-.6,-.2,0> rotate rr }