// POV users #include "namelist.inc" #include "colors.inc" #include "stones.inc" #include "metals.inc" global_settings { hf_gray_16 } camera { location <0,50,0> look_at <0,0,0> orthographic up<0,0,70> right <70,0,0> } #declare none=-1;#declare name=0;#declare age=1; #declare SortMethod=age; // age, name, or none // as of yet name sort is not fully functional #declare Fontnorm="c:/windows/fonts/TEMPSITC.ttf" // Normal font #declare Fontbold="c:/windows/fonts/TEMPSITC.ttf" // Name font #declare spacelen=.6; // Space width #declare nsp=.1; // Character spacing for normal text #declare bsp=.1; // Character spacing for name text #render "Sorting list...\n" #declare order=array[80] #declare ctr=0; #while (ctr<80) #declare order[ctr]=ctr; #declare ctr=ctr+1; #end #if (SortMethod=age) #declare ctr=1; #while (ctr<80) #if (days[order[ctr]]0) #if (days[order[ctr2]]0) #if (months[order[ctr2]]0) #if (years[order[ctr2]]0) #if (asc(lname(order[ctr2]))9) // Day 1 #declare TObj= text { ttf Fontnorm str(int(days[order[nctr]]/10),1,0) .1,0 rotate 90*x translate <0,0,rad> } #render str(int(days[order[nctr]]/10),1,0) object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; // adjust rotation #declare rad=10.5+rot/360; // adjust distance #end // Day 2 #declare TObj= text { ttf Fontnorm str(mod(days[order[nctr]],10),1,0) .1,0 rotate 90*x translate <0,0,rad> } #render concat(str(mod(days[order[nctr]],10),1,0)," ") object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Month loop #local sctr=1; #while (sctr<1000) #if (asc(substr(smonths2[order[nctr]],sctr,1))=asc("*")) #local sctr=1000; #else // Month chars #declare TObj= text { ttf Fontnorm substr(smonths2[order[nctr]],sctr,1) .1,0 rotate 90*x translate <0,0,rad> } #render substr(smonths2[order[nctr]],sctr,1) object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; #end #local sctr=sctr+1; #end // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Year 1 #declare TObj= text { ttf Fontnorm "1" .1,0 rotate 90*x translate <0,0,rad> } #render " 1" object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Year 9 #declare TObj= text { ttf Fontnorm "9" .1,0 rotate 90*x translate <0,0,rad> } #render "9" object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Year x #declare TObj= text { ttf Fontnorm str(int(years[order[nctr]]/10),1,0) .1,0 rotate 90*x translate <0,0,rad> } #render str(int(years[order[nctr]]/10),1,0) object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Year x #declare TObj= text { ttf Fontnorm str(mod(years[order[nctr]],10),1,0) .1,0 rotate 90*x translate <0,0,rad> } #render concat(str(mod(years[order[nctr]],10),1,0)," ") object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Dash #declare TObj= text { ttf Fontnorm "-" .1,0 rotate 90*x translate <0,0,rad> } #render "- " object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Name loop #local sctr=1; #while (sctr<1000) #if (asc(substr(names[order[nctr]],sctr,1))=asc("*")) #local sctr=1000; #else #if (asc(substr(names[order[nctr]],sctr,1))=asc(" ")) // Space #render " " #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; #else // Name chars #declare TObj= text { ttf Fontbold substr(names[order[nctr]],sctr,1) .1,0 rotate 90*x translate <0,0,rad> } #render substr(names[order[nctr]],sctr,1) object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+bsp))*360; #declare rad=10.5+rot/360; #end #end #local sctr=sctr+1; #end // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Dash #declare TObj= text { ttf Fontnorm "-" .1,0 rotate 90*x translate <0,0,rad> } #render " - " object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Location loop #local sctr=1; #while (sctr<1000) #if (asc(substr(locations[order[nctr]],sctr,1))=asc("*")) #local sctr=1000; #else #if (asc(substr(locations[order[nctr]],sctr,1))=asc(" ")) // Space #render " " #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; #else // Location chars #declare TObj= text { ttf Fontnorm substr(locations[order[nctr]],sctr,1) .1,0 rotate 90*x translate <0,0,rad> } #render substr(locations[order[nctr]],sctr,1) object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; #end #end #local sctr=sctr+1; #end #if (nctr<79) #render "\n" // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; // Separator #declare TObj= text { ttf Fontnorm "|" .1,0 rotate 90*x translate <0,0,rad> } object { TObj rotate rot*y } #declare rot=rot+1/((rad*2*pi)/(max_extent(TObj).x+nsp))*360; #declare rad=10.5+rot/360; // Space #declare rot=rot+1/((rad*2*pi)/spacelen)*360; #declare rad=10.5+rot/360; #end #declare nctr=nctr+1; #end pigment { color White } finish { ambient 1 diffuse 0 } }