// Last edited on 2009-07-23 17:29:55 by stolfilocal
// Processed by remove-cam-lights

background{ color rgb < 0.75, 0.80, 0.85 > }

#declare cinza = 
  texture {
    pigment { color rgb < 1.00, 1.00, 1.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare fora =
  cylinder {
    < 0,0,0 >,
    < 0,0,1 >,
    1
    texture { cinza }
  }

#declare dentro = 
  cylinder {
    < 0,0,-0.1 >,
    < 0,0,1.1 >,
    0.8
    texture { cinza }
  }

#declare portao =
  box {
    < 0.65,0.65,0 >
    < 0.8,0.8,0.5 >
  }

#declare torre = 
  cylinder {
    < 0,0,0 >,
    < 0,0,1 >,
    0.2
    texture { cinza }
}

#declare muro = 
  union {
    difference {
      difference {
        object { fora }
        object { dentro }
      }
      object { portao }
    }
    object { torre translate < 1,0,0 > }
    object { torre translate < -1,0,0 > }
    object { torre translate < 0,-1,0 > }
    object { torre translate < 0,1,0 > }
  }
#macro castle (n)
  #if (n=0)
    union{
      object { muro }
    }
  #else
    union {
      object { muro }
      object { castle (n-1) translate < 0,0,1 > scale 0.8 } 
    }
  #end
#end

#declare N=5;

union { castle(N) }

// Original camera parameters:
// #local cam_ctr = <0,0,0>
// #local cam_vec = <5,5,6>
// #local cam_sky = z

#include "camlight.inc"
camlight(<0,0,1>,<10,7,5>,7.0,z,1.0)