// Persistence of Vision Ray Tracer Scene Description File
// File: sphere_sweep_05.pov
// Vers: 3.5
// Desc: Aplicación de tortuga.inc y sphere_sweep
// Date: 10 de febrero de 2005
// Auth: Mario Antonio Herrero Machado
// ==== Standard POV-Ray Includes ====
#include "colors.inc"      // Standard Color definitions
#include "textures.inc"      // Standard Texture definitions
#include "functions.inc"  // internal functions usable in user defined functions  
#include "golds.inc"
#include "glass.inc"
#include "tortuga.inc"    // tortuga Logo 3D
//===================== RADIANCE AND ENVIRONMENT SETTINGS =====================
#declare Rad_Quality = 1;

global_settings {
  assumed_gamma 1

#switch (Rad_Quality)
 #case (1)
  radiosity {             // --- Settings 1 (fast) ---
    pretrace_start 0.08
    pretrace_end   0.02
    count 50
    error_bound 0.5
    recursion_limit 1
  }
 #break
 #case (2)
  radiosity {             // --- Settings 2 (medium quality) ---
    pretrace_start 0.08
    pretrace_end   0.01
    count 120
    error_bound 0.25
    recursion_limit 1
  }
 #break
 #case (3)
  radiosity {             // --- Settings 3 (high quality) ---
    pretrace_start 0.08
    pretrace_end   0.005
    count 400
    error_bound 0.1
    recursion_limit 1
  }
 #break
 #case (4)
  radiosity {             // --- Settings 4 (medium quality, recursion_limit 2) ---
    pretrace_start 0.08
    pretrace_end   0.005
    count 350
    error_bound 0.15
    recursion_limit 2
  }
 #break
 #end

}

fog {
  fog_type 2
  fog_alt 1.3
  fog_offset 0
  color rgb <0.7, 0.8, 0.9>
  distance 800
}

light_source {<1000, 10000, -15000> color rgb <1.0, 0.9, 0.78>*2.3}

sphere {                  // --- Sky ---
  <0, 0, 0>, 1
  texture {
   pigment {
     gradient y
     color_map {
       [0.0 color rgb < 1.0, 1.0, 1.0 >]
       [0.3 color rgb < 0.5, 0.6, 1.0 >]
     }
   }
   finish { diffuse 0 ambient 1 }
  }
  scale 10000
  hollow on
  no_shadow
}

//===================== THE SCENERY ITSELF ====================================
// perspective (default) camera
camera {
  location  <-2.0, 0.15, -2.5>
  look_at   <0.0, 1.0,  0.0>
  right     x*image_width/image_height
}

// create a regular point light source
light_source {
  0*x                  // light's position (translated below)
  color rgb <1,1,1>    // light's color
  translate <-20, 40, -20>
}
plane {y,-0.05
     pigment{color rgb<1.0,0.5,0>}
      }

#declare punto=array[40]
//==>inicio de una tortuga en el espacio <==
IniTortuga()
SinPluma()
#declare cont1=0;
#declare punto[cont1]=<X,Y,Z>;  //punto inicial punto[0]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [1]
#declare cont1=cont1+1;
Andar(0.5)  
Cabecear(-90)
#declare punto[cont1]=<X,Y,Z>; //punto [2]
#declare cont1=cont1+1;
Andar(0.5)
Virar(90) 
#declare punto[cont1]=<X,Y,Z>; //punto [3]
#declare cont1=cont1+1;
Andar(0.5)
Virar(90) 
#declare punto[cont1]=<X,Y,Z>; //punto [4]
#declare cont1=cont1+1;
Andar(0.5) 
Cabecear(-90)
#declare punto[cont1]=<X,Y,Z>; //punto [5]
#declare cont1=cont1+1;
Andar(0.5)
#declare punto[cont1]=<X,Y,Z>; //punto [6]
#declare cont1=cont1+1;
Andar(0.5) 
Cabecear(-90)
#declare punto[cont1]=<X,Y,Z>; //punto [7]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [8]
#declare cont1=cont1+1;    
Virar(-90)
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [9]
#declare cont1=cont1+1;
Virar(-90)
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [10]
#declare cont1=cont1+1;  
Cabecear(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [11]
#declare cont1=cont1+1;
Cabecear(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [12]
#declare cont1=cont1+1;   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [13]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [14]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [15]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [16]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [17]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [18]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [19]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [20]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [21]
#declare cont1=cont1+1;
Virar(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [22]
#declare cont1=cont1+1;
Virar(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [23]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [24]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [25]
#declare cont1=cont1+1; 
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [26]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [27]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [28]
#declare cont1=cont1+1; 
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [29]
#declare cont1=cont1+1;
Cabecear(90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [30]
#declare cont1=cont1+1;   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [31]
#declare cont1=cont1+1;
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [32]
#declare cont1=cont1+1;
Cabecear(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [33]
#declare cont1=cont1+1;
Cabecear(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [34]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [35]
#declare cont1=cont1+1;
Virar(-90)   
Andar(0.5) 
#declare punto[cont1]=<X,Y,Z>; //punto [36]
#declare cont1=cont1+1;

#declare d1=0.05;
#declare cont2=0;
sphere_sweep{
cubic_spline
cont1+2, 
#while (cont2<cont1)
punto[cont2],d1,
#declare cont2=cont2+1;
#end
punto[1],d1,
punto[2],d1

texture{T_Gold_1A}
}