// Last edited on 2003-04-12 19:57:52 by stolfi


#include "colors.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones1.inc"
#include "textures.inc"


light_source { //fonte de luz
  < 0.00, 10.00, 0.00 >
  color rgb < 1.00, 1.00, 1.0 >
}
 
light_source { //fonte de luz
  < 0.00, 0.00, 0.00 >
  color rgb 3*< 1.00, 1.00, 1.00 >
} 

camera {
  location  <  1.50, 1.0, 15.0 > // x, y, z 
  right     < -0.80, 0.00, 0.00 >
  up        <  0.00, 0.60, 0.00 >
  sky       <  0.00, 1.00, 0.00 > //vetor que aponta para cima
  look_at   <  0.00, 0.00, 0.00 >
} 

background{ color rgb < 0.8,0.9,1.5 > }

#declare cor_cristal = < 0.8,0.9,1.5>;   
#declare cristal = 
	texture {
    	   finish {
      		ambient 0.1 
		diffuse 0.1
      		reflection 0.25
      		specular 1 
		roughness 0.001
    	          }
    	pigment { color cor_cristal filter 1}
  	}

#declare cor_piso = 
	texture{
	pigment {color Brown}
	finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
	}

#if (clock <= 0.5)
	#declare rotacao = 360*clock;
	#declare translacao = -7*clock;
#else
	#declare rotacao = 360*clock;
	#declare translacao = -10*clock;
	
#end

#if ( clock <= 4/7 )
  #declare posicao = 0;
  #declare tamanho = 0;
#else
  #declare posicao = 0 - 10*( (clock - 4/7)/(1-4/7) );
  #declare tamanho = (clock - 4/7)/(1-4/7);
#end



#declare anuncio_1 =
  text {
    ttf "latinwd.ttf"
    "Seja campeao nessa"
    0.2, 0
  }
#declare anuncio_2 =
  text {
    ttf "latinwd.ttf"
    "corrida!"
    0.2, 0
  }
#declare parte_1 =
   cone {
	<0,0,0>, 2.5
	<0,-.5,0>, 1.6	
	pigment { color LightBlue }
	//texture { cristal }
	}
#declare parte_2 =
   cylinder {
	<0,0.01,0>, 
	<0,0,0>, 1.6
	texture { cristal }
	interior {ior 1.5}
	//pigment { color LightBlue }
	}

#declare prato =
	union {
	object {parte_1}
	object {parte_2}
	}


#declare chao =
  plane { y, -3.5
         pigment { Brown}
         }

#declare carro_esq =
 prism {
    cubic_spline
    0, // sweep the following shape from here ...
    1, // ... up through here

    6, // the number of points making up the shape ...
    < -4, 0>, // point#1 (control point... not on curve)
    < -3, 0>, // point#2  ... THIS POINT ...
    < -3.5, -3>,// point#3
    
    < -4,  0>, // point#4
    < -3,  0>, // point#5 ... MUST MATCH THIS POINT
    <-3.5,  -3>  // point#6 (control point... not on curve)
    pigment { Yellow }
    translate -3.5*y
  }


#declare carro_dir =
 prism {
    cubic_spline
    0, // sweep the following shape from here ...
    1, // ... up through here

    6, // the number of points making up the shape ...
    < 4.5, 0>, // point#1 (control point... not on curve)
    < 3.5, 0>, // point#2  ... THIS POINT ...
    < 4, -3>,// point#3
    
    < 4.5,  0>, // point#4
    < 3.5,  0>, // point#5 ... MUST MATCH THIS POINT
    < 4,  -3>  // point#6 (control point... not on curve)
    pigment { Red }
    translate -3.5*y
  }

#declare carro_centro =
 prism {
    cubic_spline
    0, // sweep the following shape from here ...
    1, // ... up through here

    6, // the number of points making up the shape ...
    < -0.5, 0>, // point#1 (control point... not on curve)
    < 0.5, 0>, // point#2  ... THIS POINT ...
    < 0, -3>,// point#3
    
    < -0.5,  0>, // point#4
    < 0.5,  0>, // point#5 ... MUST MATCH THIS POINT
    < 0,  -3>  // point#6 (control point... not on curve)
    pigment { Green }
    translate -3.5*y
  }

#declare pilar_esq =
 lathe {
    linear_spline
    4,
    <0.5,2+4*clock>, <1,1+clock>, <0.5,0 - clock>, <1,-3.5> //, <0.5,-1*clock>, <1,-2*clock>, <0.5,-3.5>
    pigment { Blue }
    finish {
      ambient .3
      phong .75
    }
   translate -6*x
   translate -30*z
  }

#declare pilar_dir =
 lathe {
    linear_spline
    4,
    <0.5,2+4*clock>, <1,1+clock>, <0.5,0 - clock>, <1,-3.5> //, <0.5,-1*clock>, <1,-2*clock>, <0.5,-3.5>
    pigment { Blue }
    finish {
      ambient .3
      phong .75
    }
   translate 6*x
   translate -30*z
  }

#declare teto =
  cylinder {
	<6,1.2+4*clock,-30>,
	<-6,1.2+4*clock,-30>,
	0.8
	pigment { Blue }
}

object {teto}
object {pilar_esq}
object {pilar_dir}

object {carro_esq
	translate 8*translacao*z}

object {carro_dir
	translate 10*translacao*z}

object {carro_centro	
	translate 9*translacao*z}

object {chao}

object {prato 
	rotate <rotacao, 0, 0> 
	translate 4*translacao*z}


#if ( tamanho != 0 )
   object { 
     anuncio_1
     scale <1,3,1>
     scale tamanho
     translate <posicao*9/10,3,posicao+4>
     pigment { color Bronze }
         }
#end
#if ( tamanho != 0 )
   object { 
     anuncio_2
     scale <1,3,1>
     scale tamanho
     translate <posicao*9/10+3,0,posicao+4>
     pigment { color Bronze }
      
   }
#end