#version unofficial megapov .5; // 2 Faceted Torus Macros // June, 2000 Samuel Benge ( STBenge@aol.com ) // // Tri_Torus( max radius, min radius, number of facets ) // // Cy_Torus( max radius, min radius, number of facets, cylinder radius ) // // It's neccessary to encase the macros within a union to add a texture, for example: // union{ Tri_Torus( 3, 1, 7 ) pigment{rgb 1} } // ********************** // Faceted Triangle Macro // #macro Tri_Torus( MaxR, MinR, Num ) #$ R2=0; #$ R1=0; //#$ Num=10; #$ MinR=1; #$ MaxR=2; #if(MaxR=MinR) #$ MinR=MinR-.0001; #end #while(R1<(pi*2)-(pi/Num)) #while(R2<(pi*2)-(pi/Num)) triangle{ , , } triangle{ , , } #$ R2=R2+pi*2/Num; #end #$ R2=0; #$ R1=R1+pi*2/Num; #end #end // ********************** // Faceted Cylinder Macro // #macro Cy_Torus( MaxR, MinR, Num, Cy_Rad ) #$ R2=0; #$ R1=0; //#$ Num=12; #$ MinR=.5; #$ MaxR=1; #if(MaxR=MinR) #$ MinR=MinR-.0001; #end #while(R1<(pi*2)+(pi/Num)) #while(R2<(pi*2)+(pi/Num)) cylinder{ <(sin(R2)*MinR+MaxR)*sin(R1), cos(R2)*MinR,(sin(R2)*MinR+MaxR)*cos(R1)>, <(sin(R2+(pi*2/Num))*MinR+MaxR)*sin(R1), cos(R2+(pi*2/Num))*MinR,(sin(R2+(pi*2/Num))*MinR+MaxR)*cos(R1)>,Cy_Rad } cylinder{ , ,Cy_Rad } sphere{,Cy_Rad} #$ R2=R2+pi*2/Num; #end #$ R2=0; #$ R1=R1+pi*2/Num; #end #end