// Last edited on 2004-03-14 23:00:44 by stolfi

#include "colors.inc"

background{ color rgb < 0, 0, 0.95 > }


light_source {
 	  < 0.00, 30.00, 0.00 > 
	color rgb < 1.00, 1.00, 1.00 > rotate -90*(clock)*z
}


#if (clock<0.8)

#declare ta =(clock)/0.8;
  #declare ctr = < 0.00, 0.00, 0.00 >;
  #declare camDir = vrotate(<0,30,0>, -90*(ta)*z);
#else
  #declare ctr = < 0.00, 0.00, 0.00 >;
  #declare camDir = <30,0, 0.00 >;
#end

camera {
  location   ctr + 1.00*camDir
  right      1.00*x
  up         0.75*y
  sky        z
  look_at    ctr
}

//EIXOS

#declare eixoX =
cylinder{
	 <3, 0, 0 >
	 <-3, 0 ,0 >
	0.1
	texture {
		pigment { color Red filter 1}}
}

#declare eixoY =
cylinder{
	 <0, 3, 0 >
	 <0, -3 ,0 >
	0.1
texture {
pigment { color Blue filter 1}
}
}


//OBJETOS

#declare umbral=
prism {
    linear_sweep
    linear_spline
    0, // sweep the following shape from here ...
    2, // ... up through here
    3, // the number of points making up the shape ...


 <-6,0>, <0,3>,<6,0> 

    pigment { Green } }


#declare coluna=
	lathe{
        	linear_spline
		9,
	 	<0.3,0> <1,1> <0.3,2> <1,3>
	 	<0.3,4> <1,5> <0.3,6> <1,7>
	 	<0.3,8>

//<1,1> <0.3,2> <1,3>	<0.3,0> <1,1> <0.3,2> <1,3>

	pigment {Green}

    	}



#declare esfera=
	sphere{ <0,0,0> , 2
		texture{
			 pigment {color Yellow}
		}
	}

#declare antiesfera=
	box{<2,2,2> <-2,-2,-2>
	translate<0,0,-2>
	}

		
#declare olho=
	sphere {<0,0,0> .3
		texture { 
			 pigment {color Red}
		}
	}
	


#declare base=
 object {difference{
	 object{esfera}
	 object{antiesfera}
	}
 }

#declare comecomeI=
	object{ base rotate 180*y }


#declare comecomeS=
  union{
	object { base }
	object { olho translate<-.5,1.8,1>}
	object { olho translate<-.5,-1.8,1>}

 }



//CENA

#if (clock<0.8)
union{
	object { comecomeI rotate -36*y}
	object { comecomeS rotate 36*y}
//	translate <(1-clock)*6+(clock)*-6,0,0>

}
#else
union{
	object { comecomeI rotate -36*y scale (.99-clock)*<1,1,1>}
	object { comecomeS rotate 36*y 	scale (.99-clock)*<1,1,1>}
}

#end


union{

	object {coluna rotate 90*x
		translate <-10,6,-2>
	}	
	object {coluna rotate 90*x
		translate <-10,6,6>
	}	

	object {coluna rotate 90*x
		translate <-10,-6,-2>
	}	

	object {coluna rotate 90*x
		translate <-10,-6,6>
	}	
	object {umbral rotate 90*z
		translate <0,-6,6>
		}
}