// Last edited on DATE TIME by USER
// Processed by remove-cam-lights

#declare vv = < 15, 7.5, 4 >;
#declare uu = vrotate (vv, < 0, 0, 0 >);
#declare ww = vaxis_rotate ( vv, z, clock*720 );

  

  

  

background{ color rgb < 0.75, 0.80, 0.85 > }

#declare verdeclaro = 
  texture {
    pigment { color rgb < 0.70, 0.93, 0.70 >  filter 0.8 }
    finish { diffuse 0.1 ambient 0.1 }
  }

#declare vermelho = 
  texture {
    pigment { color rgb < 0.86, 0.08, 0.24 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare azul = 
  texture {
    pigment { color rgb < 0, 0, 0.55 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare amarelo = 
  texture {
    pigment { color rgb < 1,1, 0 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare cinza = 
  texture {
    pigment { color rgb < 1,1, 1 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare cinzul = 
  texture {
    pigment { color rgb < 0.44, 0.5, 0.56 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare verde = 
  texture {
    pigment { color rgb < 0, 0.66, 0.42 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare prata = 
  texture {
    pigment { color rgb < 1, 1, 0.5 > }
    finish { diffuse 0.1 ambient 0.1 reflection 0.8}
  }

#declare n=0;

  #macro sorvete()
      union{
        cone{<0,0,0>,1 <-4,0,0>,0 texture{vermelho} }
        sphere{ <0,0,0>,1.0 texture{vermelho} }
      }
  #end 

  #macro bola(alfa)
      union{
        sphere{<0,0,0>, 1.0 texture{amarelo} }

        object{sorvete() rotate <0,alfa,0> translate < -2,0,0> }
      }
  #end 

  #macro pill(alfa)
      union{
        cylinder{<0,0,0>, <2,0,0>, 1 texture{azul} }
        sphere{ <0, 0, 0>,1 texture{azul} }
        sphere{ <2, 0, 0>,1 texture{azul} }

        object{bola(alfa) rotate <0,alfa,0> translate <-2,0,0>}
      }
  #end 

#declare nh=2;
#declare nv=4;
#declare nquadros=nh*nv;
#declare cini=0;
#declare cfin=1;
#declare cpasso=(cfin-cini)/(nquadros-0.9999);

#declare c0=0;
#declare c1=0.2;
#declare c2=0.4;
#declare c3=0.6;

#declare ck=cini;

#macro quadro(ck)

    #if((ck>=c0)&(ck<c1))
      #declare rr=(ck-c0)/(c1-c0);
      #declare ss=(c1-ck)/(c1-c0);
      #declare alfa=ss*0 + rr*90;
    #end

    #if((ck>=c1)&(ck<c2))
      #declare rr=(ck-c1)/(c2-c1);
      #declare ss=(c2-ck)/(c2-c1);
      #declare alfa=ss*90 - rr*90;
    #end

    #if((ck>=c2)&(ck<c3))
      #declare rr=(ck-c2)/(c3-c2);
      #declare ss=(c3-ck)/(c3-c2);
      #declare alfa=ss*(-90) + rr*0;
    #end

    object{pill(alfa)}

#end

object {quadro(clock)}

// Original camera parameters:
// #local cam_ctr = <0.00,-0.50,0.00>
// #local cam_vec = ((ww)-<0.00,-0.50,0.00>)
// #local cam_sky = z

#include "camlight.inc"
camlight(<0.00,-0.50,0.00>,<10,10,10>,20.0,z,1.0)