// Persistence of Vision Ray Tracer Scene Description File
// #macro Trapezoid(a,b,c,d,h,r,F)
// Vers: 3.6
// Desc: Trapezoids wire/faces/solids
// Date: 3/4/08
// Auth: Leroy Whetstone Email lrwii@joplin.com
//
// render to preview
// from another file: #include once and #declare Get to NOT preview 

// define Debug_Copy to output a copy a trapizoid to debug
// if you use  Debug_File=true  in the INI file
//  a copy of a trapizoid be sent to the file debug.out  
//


#ifndef(TRAPIZOID_LR)
#declare TRAPIZOID_LR=1;
// #macro Trapezoid(a,b,c,d,h,r,F)
// a - base x direction
// b - base z direction
// c - top x direction
// d - top z direction
// h - height
// r - >0 roundness radius of curve ,=0 sharp, <0 abs(bevel) 
// F - type 0- wire frame 1- inclose with triangles 
//          2-solid union 3- solid merge

#macro Trapezoid(a,b,c,d,h,r,F)
 #if (F=0)
   #if(r=0)#debug"\n ERROR! A Wire Frame Trapezoid needs a radius\n\n" 
           #end
     #local r=abs(r); #end
 #local w1=r;
 #if (w1<0) #local w1=abs(r); #end
 #local Lp1=<w1-a,w1,w1-b>;
 #local Lp2=<w1-a,w1,b-w1>;
 #local Lp3=<a-w1,w1,b-w1>;
 #local Lp4=<a-w1,w1,w1-b>;
 #local Hp1=<w1-c,h-w1,w1-d>;
 #local Hp2=<w1-c,h-w1,d-w1>;
 #local Hp3=<c-w1,h-w1,d-w1>;
 #local Hp4=<c-w1,h-w1,w1-d>;
//#debug concat("Hp1,Hp2= <",vstr(3,Hp1,",",4,4),">,")
// #debug concat(" <",vstr(3,Hp2,",",4,4),">\n")
 #if ((F=3)&(r>0)) merge{ 
 #else #if (r>0) union{ #end 
 #end
 #ifdef(Debug_Copy)
  #debug concat("\nTrapezoid("str(a,3,3)","str(b,3,3)","str(c,3,3)","str(d,3,3)","str(h,3,3)","str(r,3,3)","str(F,0,0)") = \n")
  #if ((F=3)&(r>0)) #debug"merge{\n" 
  #else #if (r>0)  #debug"union{\n" #end
  #end
 #end

#if (r>0)//edges
 cylinder{Lp1,Lp2,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp1,",",3,3),"><",vstr(3,Lp2,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp2,Lp3,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp2,",",3,3),"><",vstr(3,Lp3,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp3,Lp4,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp3,",",3,3),"><",vstr(3,Lp4,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp4,Lp1,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp4,",",3,3),"><",vstr(3,Lp1,",",3,3),">,",str(r,3,3),"}\n") #end
 sphere{Lp1,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Lp1,",",3,3),">,",str(r,3,3),"}") #end
 sphere{Lp2,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Lp2,",",3,3),">,",str(r,3,3),"}\n") #end
 sphere{Lp3,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Lp3,",",3,3),">,",str(r,3,3),"}") #end
 sphere{Lp4,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Lp4,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Hp1,Hp2,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Hp1,",",3,3),"><",vstr(3,Hp2,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Hp2,Hp3,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Hp2,",",3,3),"><",vstr(3,Hp3,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Hp3,Hp4,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Hp3,",",3,3),"><",vstr(3,Hp4,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Hp4,Hp1,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Hp4,",",3,3),"><",vstr(3,Hp1,",",3,3),">,",str(r,3,3),"}\n") #end
 sphere{Hp1,r}   #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Hp2,",",3,3),">,",str(r,3,3),"}") #end
 sphere{Hp2,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Hp3,",",3,3),">,",str(r,3,3),"}\n") #end
 sphere{Hp3,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Hp4,",",3,3),">,",str(r,3,3),"}") #end
 sphere{Hp4,r}  #ifdef(Debug_Copy) #debug concat(" sphere{<",vstr(3,Hp1,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp1,Hp1,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp1,",",3,3),"><",vstr(3,Hp1,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp2,Hp2,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp2,",",3,3),"><",vstr(3,Hp2,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp3,Hp3,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp3,",",3,3),"><",vstr(3,Hp3,",",3,3),">,",str(r,3,3),"}\n") #end
 cylinder{Lp4,Hp4,r} #ifdef(Debug_Copy) #debug concat(" cylinder{<",vstr(3,Lp4,",",3,3),"><",vstr(3,Hp4,",",3,3),">,",str(r,3,3),"}\n") #end
#end
#if (F>0)//calc sides
  #local w1=abs(r);
 #declare Tv=Hp1-Lp1;
 //#debug concat(" Tv=<",vstr(3,Tv,",",4,4),">\n")
 #declare Ax=degrees(atan(Tv.x/Tv.y)); 
 #declare Az=degrees(atan(Tv.z/Tv.y)); 
 //#debug concat(" Ax=",str(Ax,4,4),"\n")
 //#debug concat(" Az=",str(Az,4,4),"\n")

 #declare Xa=vrotate(-x*w1,-z*Ax);
 #declare Za=vrotate(-z*w1,x*Az);
 //sphere{Xa+Lp1,.01 pigment{Red}}
 //sphere{Za+Lp1,.01 pigment{Red}}
 //sphere{-x*w1+Lp1,.01 pigment{Blue}}
 //sphere{-z*w1+Lp1,.01 pigment{Blue}}

  #if (r=0) #local Xa=<0,0,0>; #local Za=<0,0,0>; #end

  #local Bq1=Lp1-y*w1; #local Bq2=Lp2-y*w1;
  #local Bq3=Lp3-y*w1; #local Bq4=Lp4-y*w1;
   #local Tq1=Hp1+y*w1; #local Tq2=Hp2+y*w1;
   #local Tq3=Hp3+y*w1; #local Tq4=Hp4+y*w1;
  #local Aw=Xa;
   #local Fx1=Lp1+Aw; #local Fx2=Lp2+Aw;
   #local Fx3=Hp2+Aw; #local Fx4=Hp1+Aw;
  #local Aw=<-Xa.x,Xa.y,Xa.z>;
   #local FX1=Lp3+Aw; #local FX2=Lp4+Aw;
   #local FX3=Hp4+Aw; #local FX4=Hp3+Aw;
  #local Aw=Za;
   #local FZ1=Lp1+Aw; #local FZ2=Lp4+Aw;
   #local FZ3=Hp4+Aw; #local FZ4=Hp1+Aw;
  #local Aw=<Za.x,Za.y,-Za.z>;
   #local Fz1=Lp2+Aw; #local Fz2=Lp3+Aw;
   #local Fz3=Hp3+Aw; #local Fz4=Hp2+Aw;
   //#debug concat("Lp1= <",vstr(3,Lp1,",",4,4),">\n")
   //#debug concat("Fx1= <",vstr(3,Fx1,",",4,4),">\n")
#ifdef(Debug_Copy)
 #debug "mesh{\n"
 #debug concat(" triangle{<",vstr(3,Bq1,",",3,3),">,<",vstr(3,Bq2,",",3,3),">,<",vstr(3,Bq3,",",3,3),">}\n")
 #debug concat(" triangle{<",vstr(3,Bq1,",",3,3),">,<",vstr(3,Bq4,",",3,3),">,<",vstr(3,Bq3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Tq1,",",3,3),">,<",vstr(3,Tq2,",",3,3),">,<",vstr(3,Tq3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Tq1,",",3,3),">,<",vstr(3,Tq4,",",3,3),">,<",vstr(3,Tq3,",",3,3),">}\n")
 #debug concat(" triangle{<",vstr(3,Fx1,",",3,3),">,<",vstr(3,Fx2,",",3,3),">,<",vstr(3,Fx3,",",3,3),">}\n")
 #debug concat(" triangle{<",vstr(3,Fx1,",",3,3),">,<",vstr(3,Fx4,",",3,3),">,<",vstr(3,Fx3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FX1,",",3,3),">,<",vstr(3,FX2,",",3,3),">,<",vstr(3,FX3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FX1,",",3,3),">,<",vstr(3,FX4,",",3,3),">,<",vstr(3,FX3,",",3,3),">}\n")
 #debug concat(" triangle{<",vstr(3,Fz1,",",3,3),">,<",vstr(3,Fz2,",",3,3),">,<",vstr(3,Fz3,",",3,3),">}\n")
 #debug concat(" triangle{<",vstr(3,Fz1,",",3,3),">,<",vstr(3,Fz4,",",3,3),">,<",vstr(3,Fz3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FZ1,",",3,3),">,<",vstr(3,FZ2,",",3,3),">,<",vstr(3,FZ3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FZ1,",",3,3),">,<",vstr(3,FZ4,",",3,3),">,<",vstr(3,FZ3,",",3,3),">}\n")
 #if (((F>1)&(r!=0))|((F=1)&(r<0)))
  #debug "// corners\n"
  #debug concat(" triangle{<",vstr(3,Bq1,",",3,3),">,<",vstr(3,FZ1,",",3,3),">,<",vstr(3,Fx1,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq2,",",3,3),">,<",vstr(3,FZ1,",",3,3),">,<",vstr(3,Fx2,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq3,",",3,3),">,<",vstr(3,FZ2,",",3,3),">,<",vstr(3,FX1,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq4,",",3,3),">,<",vstr(3,FZ2,",",3,3),">,<",vstr(3,FX2,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq1,",",3,3),">,<",vstr(3,FZ4,",",3,3),">,<",vstr(3,Fx4,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq2,",",3,3),">,<",vstr(3,Fz4,",",3,3),">,<",vstr(3,Fx3,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq3,",",3,3),">,<",vstr(3,Fz3,",",3,3),">,<",vstr(3,FX4,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq4,",",3,3),">,<",vstr(3,FZ3,",",3,3),">,<",vstr(3,FX3,",",3,3),">}\n")

  #debug concat(" triangle{<",vstr(3,Fx4,",",3,3),">,<",vstr(3,FZ1,",",3,3),">,<",vstr(3,Fx1,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Fx3,",",3,3),">,<",vstr(3,Fz1,",",3,3),">,<",vstr(3,Fx2,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FX4,",",3,3),">,<",vstr(3,Fz2,",",3,3),">,<",vstr(3,FX1,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,FX3,",",3,3),">,<",vstr(3,FZ2,",",3,3),">,<",vstr(3,FX2,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,FZ1,",",3,3),">,<",vstr(3,FZ4,",",3,3),">,<",vstr(3,Fx4,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Fz1,",",3,3),">,<",vstr(3,Fz4,",",3,3),">,<",vstr(3,Fx3,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Fz2,",",3,3),">,<",vstr(3,Fz3,",",3,3),">,<",vstr(3,FX4,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,FZ2,",",3,3),">,<",vstr(3,FZ3,",",3,3),">,<",vstr(3,FX3,",",3,3),">}\n")

  #debug concat(" triangle{<",vstr(3,Bq1,",",3,3),">,<",vstr(3,Fx1,",",3,3),">,<",vstr(3,Bq2,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq2,",",3,3),">,<",vstr(3,Fz1,",",3,3),">,<",vstr(3,Bq3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq3,",",3,3),">,<",vstr(3,FX1,",",3,3),">,<",vstr(3,Bq4,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Bq4,",",3,3),">,<",vstr(3,FZ2,",",3,3),">,<",vstr(3,Bq1,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Bq2,",",3,3),">,<",vstr(3,Fx2,",",3,3),">,<",vstr(3,Fx1,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Bq3,",",3,3),">,<",vstr(3,Fz2,",",3,3),">,<",vstr(3,Fz1,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Bq4,",",3,3),">,<",vstr(3,FX1,",",3,3),">,<",vstr(3,FX2,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Bq1,",",3,3),">,<",vstr(3,FZ1,",",3,3),">,<",vstr(3,FZ2,",",3,3),">}\n")

  #debug concat(" triangle{<",vstr(3,Tq1,",",3,3),">,<",vstr(3,Fx4,",",3,3),">,<",vstr(3,Tq2,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Tq2,",",3,3),">,<",vstr(3,Fz4,",",3,3),">,<",vstr(3,Tq3,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Tq3,",",3,3),">,<",vstr(3,FX4,",",3,3),">,<",vstr(3,Tq4,",",3,3),">}\n")
  #debug concat(" triangle{<",vstr(3,Tq4,",",3,3),">,<",vstr(3,FZ3,",",3,3),">,<",vstr(3,Tq1,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq2,",",3,3),">,<",vstr(3,Fx4,",",3,3),">,<",vstr(3,Fx3,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq3,",",3,3),">,<",vstr(3,Fz4,",",3,3),">,<",vstr(3,Fz3,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq4,",",3,3),">,<",vstr(3,FX3,",",3,3),">,<",vstr(3,FX4,",",3,3),">}\n")
   #debug concat(" triangle{<",vstr(3,Tq1,",",3,3),">,<",vstr(3,FZ3,",",3,3),">,<",vstr(3,FZ4,",",3,3),">}\n")
 #if (F>1) #debug concat(" inside_vector <0,"str(h/2,3,3)", 0>\n") #end

 #end
 #debug "}\n"
#end


mesh{  //faces
  triangle{Bq1,Bq2,Bq3}
  triangle{Bq1,Bq4,Bq3}
   triangle{Tq1,Tq2,Tq3}
   triangle{Tq1,Tq4,Tq3}
  triangle{Fx1,Fx2,Fx3 }
  triangle{Fx1,Fx4,Fx3}
   triangle{FX1,FX2,FX3}
   triangle{FX1,FX4,FX3}
  triangle{Fz1,Fz2,Fz3}
  triangle{Fz1,Fz4,Fz3}
   triangle{FZ1,FZ2,FZ3}
   triangle{FZ1,FZ4,FZ3}
 
 //#if ((F>0)&(r!=0))// corners
 #if (((F>1)&(r!=0))|((F=1)&(r<0)))// corners
   triangle{Bq1,FZ1,Fx1} triangle{Tq1,FZ4,Fx4}
   triangle{Bq2,Fz1,Fx2} triangle{Tq2,Fz4,Fx3}
   triangle{Bq3,Fz2,FX1} triangle{Tq3,Fz3,FX4}
   triangle{Bq4,FZ2,FX2} triangle{Tq4,FZ3,FX3}
   
   triangle{Fx4,FZ1,Fx1} triangle{FZ1,FZ4,Fx4}
   triangle{Fx3,Fz1,Fx2} triangle{Fz1,Fz4,Fx3}
   triangle{FX4,Fz2,FX1} triangle{Fz2,Fz3,FX4}
   triangle{FX3,FZ2,FX2} triangle{FZ2,FZ3,FX3}
  
   triangle{Bq1,Fx1,Bq2} triangle{Bq2,Fx2,Fx1}
   triangle{Bq2,Fz1,Bq3} triangle{Bq3,Fz2,Fz1}
   triangle{Bq3,FX1,Bq4} triangle{Bq4,FX1,FX2}
   triangle{Bq4,FZ2,Bq1} triangle{Bq1,FZ1,FZ2}
  
   triangle{Tq1,Fx4,Tq2} triangle{Tq2,Fx4,Fx3}
   triangle{Tq2,Fz4,Tq3} triangle{Tq3,Fz4,Fz3}
   triangle{Tq3,FX4,Tq4} triangle{Tq4,FX3,FX4}
   triangle{Tq4,FZ3,Tq1} triangle{Tq1,FZ3,FZ4}
 #end
 #if (F>1) inside_vector <0,h/2,0> #end
 //pigment{Red}
 }
 #end
 #if (r>0) } #ifdef(Debug_Copy) #debug "}\n" #end #end
#end

//----------------PreView-----------------

 #ifndef(Get)
 #version 3.5;
 #include "colors.inc"
 //global_settings { assumed_gamma 2.2 }
 camera {location<0,10,-18>
  right x*image_width/image_height
  look_at<0,6,0>
 }
 light_source {<-20, 20, -20> rgb .5}
 light_source {<20, 20, -20> rgb .5}
 light_source {<0, 20, -20> rgb .5}
 plane { y, 0  pigment {Gold}}

//-------display trapizoids--------------------------------
// object{Trapezoid(3,3,1,2,4,.75,1) pigment{Yellow} }//rotate -y*20}
  //finish{ambient .1 diffuse .8} 

 object{Trapezoid(3,3,2,1,6,.75,3) rotate <0,45,0>
 pigment{agate color_map{[0 rgbt <1,.1,.01,0>][1 rgbt <.5,.1,.01,0>]}
  turbulence .1} 
 normal {agate turbulence .1}
 finish{specular .1 roughness .01 }
  translate z*9}
 
 object{Trapezoid(3,3,2,2,4,0,1) pigment{Yellow}rotate y*45 translate<-8,0,8>}
 object{Trapezoid(3,3,2,2,4,-.8,1) pigment{Green}
   //normal{crackle.5}
   finish{ambient.3 reflection .1 brilliance 3 specular.4 roughness 1/30} 
   rotate -y*45 translate<8,0,8>}
  text {ttf "timrom.ttf" "F=0 :wrire Frame" .1, 0 scale 1.5
    pigment {Pink} translate <-14,9,8>no_shadow}
  text {ttf "timrom.ttf" "F=1 :triangle Mesh" .1, 0 scale 1.5
    pigment {Pink} translate <-14,7,8>no_shadow}
  text {ttf "timrom.ttf" "F=2 : Solid union" .1, 0 scale 1.5
    pigment {Pink} translate <1,9,8>no_shadow}
  text {ttf "timrom.ttf" "F=3 : Solid merge" .1, 0 scale 1.5
    pigment {Pink} translate <1,7,8>no_shadow}

  text {ttf "timrom.ttf" "r=0 :Pure Mesh" .1, 0 scale .75
    pigment {White} translate <-10,5,6>no_shadow}
  text {ttf "timrom.ttf" "r>0 :rounded edges" .1, 0 scale .75
    pigment {White} translate <-3,6,7>no_shadow}
  text {ttf "timrom.ttf" "r<0 :beveled Mesh" .1, 0 scale .75
    pigment {White} translate <5,5,7>no_shadow}
 object{Trapezoid(3,3,2,2,4,-.1,0)
  pigment{agate color_map{[0 rgbt <.7,.7,.01,0>][1 rgbt <.4,.4,.01,0>]}
   turbulence .1} 
  normal {agate turbulence .1}
 }
  text {ttf "timrom.ttf" "Trapezoid(a,b,c,d,h,r,F)" .1, 0
    pigment {White} translate <-4,12,-5>no_shadow}

 cylinder{0,-z*2.5,.1 pigment{White}}
 cone{-z*2.9,0,-z*2.3,.3 pigment{rgb 1}} text {ttf "timrom.ttf" "b" .1, 0 
    pigment {White} rotate x*90
    scale <2,1,2>translate <.2,.5,-2.5>no_shadow}
 cylinder{0,-x*2.5,.1 pigment{rgb 1}}
 cone{-x*2.9,0,-x*2.3,.3 pigment{rgb 1}}
   text {ttf "timrom.ttf" "a" .1, 0 
    pigment {rgb 1} //rotate x*90
    scale <2,1,2>translate <-1.5,.5,0>no_shadow}
 cylinder{0,y*3.9,.1 pigment{White}}
 cone{y*1.5,.3,y*2.3,0 pigment{rgb 1}}
   text {ttf "timrom.ttf" "h" .1, 0 
    pigment {White}
    scale <2,1,2>translate <.3,1,0>no_shadow}
 cylinder{y*3.9,<0,3.9,-1.5>,.1 pigment{White}}
 cone{-z*1.9+y*3.9,0,-z*1.3+y*3.9,.3 pigment{rgb 1}}
  text {ttf "timrom.ttf" "d" .1, 0 
    pigment {White} //rotate x*90
    scale <2,1,2>translate <.2,4,-1.5>no_shadow}
 cylinder{y*3.9,<-1.5,3.9,0>,.1 pigment{White}}
 cone{-x*1.9+y*3.9,0,-x*1.3+y*3.9,.3 pigment{rgb 1}}
  text {ttf "timrom.ttf" "c" .1, 0 
    pigment {White} //rotate x*90
    scale <2,1,2>translate <-1,4.5,0>no_shadow}
 cone{<-3.5,.5,-3>,.2,<-3,.5,-3>,0 pigment{White}} 
  text {ttf "timrom.ttf" "r" .1, 0 
    pigment {White} //rotate x*90
    scale <2,1,2>translate <-4,.5,-3>no_shadow}
  sphere{0,.3 pigment{rgb x}}
  sphere{y*3.9,.3 pigment{rgb x}}

//----------Play with These--------------
#declare Debug_Copy=yes;//put a copy to debug
 object{Trapezoid(.5,.65,.5,.6,1.2,.1,1) pigment{Gold} translate <-8,0,-3>}
#undef Debug_Copy
 object{Trapezoid(1,.5,1.1,.5,2,.15,1) pigment{Gold} translate <8,0,-3>}

#end// end of not get
#end//end of include

