// Persistence of Vision Ray Tracer Scene Description File // File: brilliant.inc // Vers: 3.1 // Desc: The so famous 'brilliant' gem-cut // Date: 6 January 1999 // Auth: Jerome Grimbert // Nota: not as clean as it should // The 'brilliant' object is centered at the origin, // It is contained in a 2x2x2 box (or a sphere of radius 1) // the Up face is along y (at <0, 0.52, 0>) // the opposite vertex is not cut and I don't know where it is exactly // (somewhere near <0,-1,0> but I haven't do the maths...) #declare brilliant= object { intersection { // create a sphere shape sphere { <0, 0, 0> // center of sphere 1 // radius of sphere } // principale du pavillon #declare pavisup = 1 * sin(radians(43)) ; plane { -y, pavisup rotate <43,0,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,90,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,180,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,270,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,45,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,135,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,315,0> } plane { -y, pavisup rotate <43,0,0> rotate <0,225,0> } // feuilletis inferieur #declare feuinf = 1 * sin(radians(44)) ; plane { -y, feuinf rotate <45,0,0> rotate <0,45*2/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*62/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*6/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*10/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*14/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*18/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*22/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*26/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*30/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*34/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*38/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*42/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*46/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*50/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*54/8,0> } plane { -y, feuinf rotate <45,0,0> rotate <0,45*58/8,0> } // table plane { y, 0.52 } // star #declare starsup = 0.965 * sin(radians(43)) ; plane { y, starsup rotate <25,0,0> rotate <0,45*4/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*12/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*20/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*28/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*36/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*44/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*52/8,0> } plane { y, starsup rotate <25,0,0> rotate <0,45*60/8,0> } // principale de la couronne #declare princour = 1* sin(radians(45)) ; plane { y, princour rotate <45,0,0> } plane { y, princour rotate <45,0,0> rotate <0,45,0> } plane { y, princour rotate <45,0,0> rotate <0,90,0> } plane { y, princour rotate <45,0,0> rotate <0,135,0> } plane { y, princour rotate <45,0,0> rotate <0,180,0> } plane { y, princour rotate <45,0,0> rotate <0,225,0> } plane { y, princour rotate <45,0,0> rotate <0,270,0> } plane { y, princour rotate <45,0,0> rotate <0,315,0> } // feuilletis sup #declare angl = 48.5; #declare feuisup = 0.98* sin(radians(angl)); plane { y, feuisup rotate rotate <0,45*2/8,0> } plane { y, feuisup rotate rotate <0,45*62/8,0> } plane { y, feuisup rotate rotate <0,45*6/8,0> } plane { y, feuisup rotate rotate <0,45*10/8,0> } plane { y, feuisup rotate rotate <0,45*14/8,0> } plane { y, feuisup rotate rotate <0,45*2/8,0> } plane { y, feuisup rotate rotate <0,45*18/8,0> } plane { y, feuisup rotate rotate <0,45*22/8,0> } plane { y, feuisup rotate rotate <0,45*26/8,0> } plane { y, feuisup rotate rotate <0,45*30/8,0> } plane { y, feuisup rotate rotate <0,45*34/8,0> } plane { y, feuisup rotate rotate <0,45*38/8,0> } plane { y, feuisup rotate rotate <0,45*42/8,0> } plane { y, feuisup rotate rotate <0,45*46/8,0> } plane { y, feuisup rotate rotate <0,45*50/8,0> } plane { y, feuisup rotate rotate <0,45*54/8,0> } plane { y, feuisup rotate rotate <0,45*58/8,0> } } }