#!/usr/bin/nawk -f $0
BEGIN {
  if(ARGC < 3) {
    frame_delay = 0.2;
    num_frames= 100
    num_verts = 10
    period = 2
  }
  else {
    num_frames  = ARGV[1];
    num_verts   = ARGV[2];
    frame_delay = ARGV[3];
  }
  pi2= 2*atan2(0,-1);

  printf("%d %d %f\n",num_frames,num_verts*3,frame_delay); 

  for(k=0;k<(num_frames);k++) {
    t1 = (k/num_frames)*pi2;
    t3 = (k/num_frames-1)*pi2;

    for(j=0;j<num_verts;j++) {
      t2 = (j/num_verts)*pi2;
      t4 = (j/(num_verts-1))*pi2;

      x = 0.5 * cos(t4 + t1);
      y = 0.5 * sin(t4 + t1);

      red  =int(128*(( sin((j/num_verts)*pi2)/2)+0.5))+127;
      green=int(128*(( cos((j/num_verts)*pi2)/2)+0.5))+127;
      blue =int(128*((-sin((j/num_verts)*pi2)/2)+0.5))+127;
       
      if ( ( 10 <  k ) && ( k < 80 ) )
        flags = 0;
      else
        flags = 3;
     
      if ( j == 0 )
	flags = 3;

      printf("%d %f %f %f %02x%02x%02x\n",flags,x,y,z,red,green,blue);
    }
    for(j=0;j<num_verts;j++) {
      t2 = (j/num_verts)*pi2;
      t4 = (j/(num_verts-1))*pi2;

      x = -2*cos(t4 + t1 ) 
      y = 2*sin(t4 + t1 );

      red  =int(128*(( sin((j/num_verts)*pi2)/2)+0.5))+127;
      green=int(128*(( cos((j/num_verts)*pi2)/2)+0.5))+127;
      blue =int(128*((-sin((j/num_verts)*pi2)/2)+0.5))+127;

      if ( j == 0 || j == 1 )
	if ( ( 0 <  k ) && ( k < 80 ) )
	  if ( j == 0 )
	    flags = 3;
	  else
	    flags = 4
	else
	  flags = 3;
      else
	flags = 4;
       
      printf("%d %f %f %f %02x%02x%02x\n",flags,x,y,z,red,green,blue);
    }
    for(j=0;j<num_verts;j++) {
      t2 = (j/num_verts)*pi2;
      t4 = (j/(num_verts-1))*pi2;

      x = 3.5*cos(t4 + t1 + pi2/2 );
      y = 3.5*sin(t4 +  t1 + pi2/2);

      red  =int(128*(( sin((j/num_verts)*pi2)/2)+0.5))+127;
      green=int(128*(( cos((j/num_verts)*pi2)/2)+0.5))+127;
      blue =int(128*((-sin((j/num_verts)*pi2)/2)+0.5))+127;

#      if ( j == num_verts/2 || j == (num_verts/2 + 1) )
      if ( j == num_verts/2 )
	if ( ( 0 <  k ) && ( k < 80 ) )
	  flags = 4
	else
	  flags = 3;
      else
	if ( j == 0 ) 
	  flags = 3;
	else
	  flags = 4;
       
      printf("%d %f %f %f %02x%02x%02x\n",flags,x,y,z,red,green,blue);
    }
  }
  exit(0);
}
