
// POV file by Andrew Cherry

#declare c=clock
#declare QUICK=0

#debug "\n+----------------------------------------------+\n"
#debug concat("| ANIMATION SEQUENCE IS",str((clock*100),6,2)," PERCENT FINISHED |                 <-- AC")
#debug "\n+----------------------------------------------+\n"
#if (clock>0) #debug concat("\nTIME REMAINING: ",str(((1/clock)-1),6,1)," x E-TIME\n\n") #end

#declare R1=seed(666)

#include "colors.inc"	// Standard Color definitions
#include "textures.inc"	// Standard Texture definitions
#include "CONSTS.INC"
#include "GLASS.INC"
#include "SKIES.INC"
#include "METALS.INC"
#include "SHAPES.INC"   // These aren't normally necessary
#include "SHAPES2.INC"
#include "SHAPESQ.INC"
#include "STONES.INC"
#include "STONES2.INC"
#include "WOODMAPS.INC"
#include "WOODS.INC"

camera
{
  location  <0 , 0 , 5>*10
  look_at   <0 , 0 , 0>
}

light_source { <10,20,30> color White }

//-----------------------------------------------------------------------------------------------------------------------------

#declare Half_Torus = difference {
    torus { 4, 1 rotate -90*x }
    box { <-5, -5, -1>, <5, 0, 1> }
  }

#declare Flip_It_Over = 180*x

#declare Torus_Translate = 8  // twice the major radius

#declare Chain_Segment = cylinder { <0, 4, 0>, <0, -4, 0>, 1 }

#declare Link = union {
  object { Half_Torus translate y*Torus_Translate/2 }
  object { Half_Torus rotate Flip_It_Over translate -y*Torus_Translate/2 }
  object { Chain_Segment translate x*Torus_Translate/2 }
  object { Chain_Segment translate -x*Torus_Translate/2 }
  texture { T_Gold_3C }
}

#declare Link_Translate = Torus_Translate*2-2*y

#declare Link_Pair = union {
  object { Link }
  object { Link translate y*Link_Translate rotate y*90 }
}

#declare CHAINBOTTOM=0
#declare CHAINTOP=10

#declare Chain = union {
#declare I=CHAINBOTTOM
#while (I<CHAINTOP)
  object { Link_Pair rotate <0,15*sin(rand(R1)*2*pi),0> scale .1 translate  y*I }
#declare I=I+(2*Link_Translate.y)*.1
#end
}

object { Chain }

sphere {0 .1 texture {pigment {White} finish {ambient 1}}}
sphere {<0,10,0> .25 texture {pigment {White} finish {ambient 1}}}
