// wuerfel.pov
// 
// povray-script zu wuerfel.c
//
// 12 jan 2005 Koepken

// alles linkshaendisch:
// z-Achse mit umgekehrtem Vorzeichen
// positive Drehungen mit linker-Hand Regel

#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
#include "stones.inc"

// Holz definieren
#declare mywood=
texture { DMFWood1 rotate <5,93,7> scale 5}

// Ausgabe des Wuerfel-Programms einlesen
#include "out.pov"

// Teile nebeneinander aus einem Holzblock schnitzen
#declare part0w=object{part0 translate 4*ind0*x texture {mywood} translate -4*ind0*x }
#declare part1w=object{part1 translate 4*ind1*x texture {mywood} translate -4*ind1*x }
#declare part2w=object{part2 translate 4*ind2*x texture {mywood} translate -4*ind2*x }
#declare part3w=object{part3 translate 4*ind3*x texture {mywood} translate -4*ind3*x }
#declare part4w=object{part4 translate 4*ind4*x texture {mywood} translate -4*ind4*x }
#declare part5w=object{part5 translate 4*ind5*x texture {mywood} translate -4*ind5*x }

// Alle Puzzleteile 
#declare allparts= union { 
object { part0w translate 5*ind0*x }
object { part1w translate 5*ind1*x }
object { part2w translate 5*ind2*x }
object { part3w translate 5*ind3*x }
object { part4w translate 5*ind4*x }
object { part5w translate 5*ind5*x }
}

// Anzeige aller Puzzleteile
object { allparts translate <-17,0,0> }

// ein paar Tests zu Drehungen als Vorbereitung auf den zusammengesetzten Wuerfel
//object { part1w translate <5,-5,-5> }
//object { part1w translate <5,-5,-5> rotate 30*x }
//object { part1w translate <5,-5,-5> rotate 120*y }
//object { part1w translate <5,-4,-5> rotate 60*z }
//object { part0w translate <5,-7,-5> rotate 60*z }

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate -6*z}
rotate -45*z
translate -15*x+5*y-6*z
}

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate 0*y}
object { part2w translate <-.5,-.5,.5> rotate rot2 translate tran2 translate -6*z}
rotate -45*z
translate -10*x+5*y-6*z
}

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate 0*y}
object { part2w translate <-.5,-.5,.5> rotate rot2 translate tran2 translate 0*y}
object { part3w translate <-.5,-.5,.5> rotate rot3 translate tran3 translate -6*z}
rotate -45*z
translate -5*x+5*y-6*z
}

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate 0*y}
object { part2w translate <-.5,-.5,.5> rotate rot2 translate tran2 translate 0*y}
object { part3w translate <-.5,-.5,.5> rotate rot3 translate tran3 translate 0*y}
object { part4w translate <-.5,-.5,.5> rotate rot4 translate tran4 translate -6*z}
rotate -45*z
translate 0*x+5*y-6*z
}

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate 0*y}
object { part2w translate <-.5,-.5,.5> rotate rot2 translate tran2 translate 0*y}
object { part3w translate <-.5,-.5,.5> rotate rot3 translate tran3 translate 0*y}
object { part4w translate <-.5,-.5,.5> rotate rot4 translate tran4 translate 0*y}
object { part5w translate <-.5,-.5,.5> rotate rot5 translate tran5 translate -6*z}
rotate -45*z
translate 5*x+5*y-6*z
}

union {
object { part0w translate <-.5,-.5,.5> rotate rot0 translate tran0 translate 0*y}
object { part1w translate <-.5,-.5,.5> rotate rot1 translate tran1 translate 0*y}
object { part2w translate <-.5,-.5,.5> rotate rot2 translate tran2 translate 0*y}
object { part3w translate <-.5,-.5,.5> rotate rot3 translate tran3 translate 0*y}
object { part4w translate <-.5,-.5,.5> rotate rot4 translate tran4 translate 0*y}
object { part5w translate <-.5,-.5,.5> rotate rot5 translate tran5 translate 0*y}
rotate -45*z
translate 10*x+5*y-6*z
}


camera {
  location <-1, -25, -35>
  look_at  <-1,4, -5>
  angle 45
}

// Licht in Kameraebene aus verschiedenen Richtungen
light_source { <-20,0, -30> color White }
light_source { <20,0, -30> color White }
light_source { <0, -30, -50> color White }
light_source { <0,-17, -50> color White }


