// selfinclude.pov -- (C) 6/1999 Christian Perle
#ifndef(SelfInc)
  global_settings { max_trace_level 20 }
  #declare SelfInc = 1
  #declare Dist = 1.5
  #declare Scl = .7
  #declare Shrink = .5
  #declare SelfObj = torus { .2, .05 rotate 90*x }
  #include "selfinclude.pov"
#else
  #if(Dist>.1)
    #declare NewObj = union {
      object { SelfObj }
      object { SelfObj scale Scl translate Dist*x }
      object { SelfObj scale Scl translate -Dist*x }
      object { SelfObj scale Scl translate Dist*y }
      object { SelfObj scale Scl translate -Dist*y }
      object { SelfObj scale Scl translate Dist*z }
      object { SelfObj scale Scl translate -Dist*z }
    }
    #declare Dist = Dist*Shrink
    #declare SelfObj = object { NewObj }
    #include "selfinclude.pov"
  #else
    camera {
      location -10*z
      direction 2.4*z
      look_at 0
      rotate <10, 15, 5>
    }
    sphere {
      0, 1 hollow
      pigment {
        granite
        color_map {
          [0 rgb<.3, .2, .1>]
          [1 rgb<.6, .4, .2>]
        }
      }
      finish { ambient 1 diffuse 0 }
      scale 1000
    }
    light_source { <100, 100, -100> rgb 1 }
    object {
      SelfObj
      pigment { rgb 1 }
      finish { reflection 1 }
    }  
  #end
#end