// Persistence of Vision Ray Tracer Scene Description File // File: bykchai2.pov // Vers: 3+ // Desc: @macro BigAssRing(LinksInRing) makes a gorgeous // Date: 08.27.00+ // Auth:dookie x // ==== Standard POV-Ray Includes ==== #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions // ==== Additional Includes ==== #include "METALS.INC" #declare PI=3.14159265358979432; #declare RADADJ=2*PI/360; //degrees to radians conversion factor #declare ShinyTex=texture{T_Chrome_4C finish{ambient .6}} #declare NotAsShinyTex=texture{T_Chrome_4C finish{ambient .53}} #declare DarkMetal=texture{T_Chrome_4C finish{ambient .12}} #declare Pin=cylinder{<0,0,-.33>,<0,0,.33>,.18 texture{NotAsShinyTex}} #declare OuterLink=difference{ union{cylinder{<0,0,-.3>,<0,0,-.21>,.38} cylinder{<0,0,-.3>,<0,0,-.21>,.38 translate <-1.25,0,0>} difference{box{<0,.25,-.3>,<-1.25,-.25,-.21>} // a rectangle-o-steel cylinder{<0,.41,-.31>,<0,.41,-.2>,.2 scale <2.23,.88,1> translate x*-.625} // with some curvy cuts... cylinder{<0,-.405,-.31>,<0,-.405,-.2>,.2 scale <2.23,.88,1> translate x*-.625} } //end "saddle" difference }// end the union of two washers and a saddle.. cylinder{<0,0,-.31>,<0,0,-.2>,.19} //a hole in the link... cylinder{<0,0,-.31>,<0,0,-.2>,.19 translate<-1.25,0,0>} //and another in the link height_field { gif "pycnegum.gif" scale <1.93,9,.52> //aspect ratio of gif!! rotate x*90 scale <.38,.4,2> translate <-1.0,.12,-.31> } texture{NotAsShinyTex} } #declare InnerLink=difference{ union{cylinder{<0,0,-.2>,<0,0,-.11>,.37} cylinder{<0,0,-.2>,<0,0,-.11>,.37 translate <1.25,0,0>} box{<0,.25,-.2>,<1.25,-.25,-.11>} } cylinder{<0,0,-.21>,<0,0,-.1>,.19} cylinder{<0,0,-.21>,<0,0,-.1>,.19 translate<1.25,0,0>} cylinder{<.2962085308057,.405,-.21>,<.2962085308057,.405,-.1>,.2 scale <2.11,.9,1>} cylinder{<.2962085308057,-.405,-.21>,<.2962085308057,-.405,-.1>,.2 scale <2.11,.9,1>} texture{DarkMetal} } #declare Spacer=difference{cylinder{<0,0,.1>,<0,0,-.1>,.35} cylinder{<0,0,.11>,<0,0,-.11>,.19} texture{ShinyTex}} #macro BigAssRing(LinksInRing) union{ #declare LinkAngle=180/LinksInRing; #declare SecretAngle=180-LinkAngle-(180-LinkAngle)/2; #declare HalfLoopSpan=1.25*sin(SecretAngle*RADADJ)/sin(LinkAngle*RADADJ); #declare OneLink=union{object{OuterLink} object{OuterLink rotate y*180 translate -x*1.25} object{Spacer} object{Pin} object{InnerLink rotate z*LinkAngle} object{InnerLink rotate x*180 rotate z*LinkAngle} object{Spacer translate x*1.25 rotate z*LinkAngle} object{Pin translate x*1.25 rotate z*LinkAngle} rotate -z*LinkAngle/2 } #declare Looper=0; #while (Looper rotate z*Looper*LinkAngle*2} #declare Looper=Looper+1 ; #end //while } //union #end //macro #macro BigAssZigZag(LinksInZZ) union{ #declare LinkAngle=90; //cuz it is, geez... #declare OneLink=union{object{OuterLink} object{OuterLink rotate y*180 translate -x*1.25} object{Spacer} object{Pin} object{InnerLink rotate z*LinkAngle} object{InnerLink rotate x*180 rotate z*LinkAngle} object{Spacer translate x*1.25 rotate z*LinkAngle} object{Pin translate x*1.25 rotate z*LinkAngle} rotate -z*LinkAngle/2 } //end union to make OneLink, ok..., right? #declare ZZLooper=0; #while (ZZLooper