// Persistence of Vision Ray Tracer Scene Description File
// File: ?.pov
// Vers: 3.1
// Desc: Basic Scene Example
// Date: mm/dd/yy
// Auth: Mick Hazelgrove
//

#version 3.1;

#include "colors.inc"  



#ifndef(Use_with_FireAndWater)

	global_settings
	{
	  assumed_gamma 1.0
	}


	// ----------------------------------------
	camera
	{
	  location  <0.0, 1.5, -20.0>
	  direction 1.5*z
	  right     4/3*x
	  look_at   <0.0, 0.0,  0.0>
	}
	
	sky_sphere
	{
	  pigment
	  {
	    gradient y
	    color_map { [0.0 color rgb<0,0,1> ] [0.6 color rgb <0,1,0>] }
	  }
	}
	
	//light_source{<30, 30, -30>,color rgb<2,0,0>}
	light_source{<-30, 30, -30>,color rgb<1,1,1>}
	light_source{<30, 30, -30>,color rgb<1,1,1>}
	/*
	light_source{<0, 80, 40> 
	  Gold
	  area_light
	  <8, 0, 0> <0, 0, 8> 
	  4, 4                
	  adaptive 0 
	  jitter 
	}
	  */
	
	// ---------------------------------------------------------------
	
	#declare Water = texture {
	  pigment {color rgbt <0.25,0,1,0.5>}
	        normal { bumps 0.5 scale 0.05} 
	                        finish {
	                                reflection 1 
	                                phong 1.0
	                                phong_size 200
	                                metallic
	                                }
	        scale 3                                
	}
	
	 plane {y,0 interior{ior 1.33} texture{Water}} 
	 
	//-----------------------------------------------------------------
	
	  fog {
	    distance 100 //was 100
	    colour rgbt<1, 0.35, 0, 0.2>*0.75
	    turbulence 0.75
	    turb_depth 0.9
	  } 
	  
	  fog {
	    distance 35  //was 35
	    colour rgbf<0.5, 0.5 , 0.7 , 1.0> *0.75
	    fog_type 2
	    fog_offset 4
	    fog_alt 1
	    turbulence .5
	    turb_depth 0.9
	 
	
	  }
	 /*
	  #declare Sun = object{
	      sphere { <0,15,199.5>,30
	      texture {
	        pigment {color rgb <7, 7, 3>}
	      }
	    }
	  }
	
	  light_source {
	    <0, 15, 200>
	    color rgb<7,7,3>
	    area_light <1, 0, 0>, <0, 1, 0>, 3, 3
	    adaptive 1
	    jitter
	    looks_like{ Sun }
	    //shadowless
	  }
	  */
	//------------------------------------------------------------------- 
#end


#declare B_Tex = texture {
  pigment {
    gradient x
    turbulence 0.3 octaves 2 omega 0.12 lambda 2.5
    color_map {
      [0.50 color rgb<0.5, 0.35, 0.000>]
      //[1.00 color rgb<0.2, 0.7, 0.7>]
    }
    frequency 5
  }
  finish {
  ambient 0.4
    specular 1 
    metallic
    reflection 0.15
  }
  rotate z*90
  scale 0.15
}




#declare Prow = union{

#declare Count = 0;
#declare Radius = 1;
#declare Angle = 0;
#declare SphRad = .01;

#while(Count<140)

sphere{0,SphRad 
        translate<Count/25,pow(Count,2)/750,0>
        rotate z*Angle
        }
        
#declare Count = Count +1;
#declare Angle = Angle + 5;
#declare SphRad = SphRad + 0.03;
#declare Radius =  Radius +Radius;

#end        
rotate x*180
}



#declare Prow2 = union{

#declare Count = 0;
#declare Radius = 100;
#declare Angle = 280;
#declare SphRad = 4.2;

#while(Count<40)

sphere{0,SphRad 
        translate <0,Radius,0>
        rotate z*Angle
        }
        
#declare Count = Count +1;
#declare Angle = Angle + 1;
#declare SphRad = SphRad + 0.03;


#end        
rotate x*180
}


#declare FProw = union{
        object{Prow
                scale 0.025
                rotate z*35 
                
        }

        object{Prow2
                scale 0.025 
                translate<-1.8495,0.15,0>        
        }
        object {torus{0.1,0.075}
                translate<0.6,-0.175,0>
        }
        translate <4.85,1,0>       
}
#declare Post = difference{
cylinder{z*-0.05,z*0.05,2.1}
cylinder{z*-0.2,z*0.2,1.95}
scale<2.5,1.25,1>
clipped_by{sphere{0,20 inverse translate<1,19.1,0>}}
}
 
#declare Bsphere = difference{
        sphere{0,2}
        sphere{0,1.95}
        }
          
#declare BtShape = union{
 object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,18,0>}}
        texture{B_Tex}
        }
        
   object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,18.2,0>}}
        clipped_by{sphere{0,20 translate<1,18,0>}}
        texture{B_Tex}
        scale 1.01
        }       
       
   object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,18.4,0>}}
        clipped_by{sphere{0,20 translate<1,18.2,0>}}
        texture{B_Tex}
        scale 1.02
        }
        
              
   object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,18.6,0>}}
        clipped_by{sphere{0,20 translate<1,18.4,0>}}
        texture{B_Tex}
        scale 1.03
        }       
         
   object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,18.8,0>}}
        clipped_by{sphere{0,20 translate<1,18.6,0>}} 
        texture{B_Tex}
        scale 1.04
        }
      
  object{Bsphere
        scale <2.5,1.25,1>
        clipped_by{sphere{0,20 inverse translate<1,19,0>}}
        clipped_by{sphere{0,20 translate<1,18.8,0>}}
        texture{B_Tex}
        scale 1.05
        }                    
 }
 
#declare boat = union{        
object{BtShape clipped_by{plane{z,-0.4 }}translate<0,0,.4>}
object{BtShape clipped_by{plane{z,0.4 inverse }}translate<0,0,-.4>}
object{FProw texture{B_Tex}scale 0.75 rotate z*18 translate <1.4,-1.25,0>}
object{Post texture{B_Tex rotate z*45}}
rotate z*10
}

#ifndef(Use_with_FireAndWater)
	object{boat
	scale 0.5
	rotate y*120
	translate<0,.9,-12> 
	}
#end	

//------------------------------------------------------------
