#!/usr/bin/nawk -f $0
BEGIN {
  if(ARGC < 3) {
    frame_delay = 1.0 / 60.0;
    num_frames=120
    num_verts = 9
    period = 1
  }
  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,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;

      radius = (sin(t4*4+(k*period/num_frames)*pi2)+2.0)/4;

      x=((-sin(t1)/2)*0.8+0.7) * (radius *  sin(t4+t1));
      y=(( sin(t1)/2)*0.8+0.7) * (radius * -cos(t4+t1));
      x = x * ((sin(t1+t4*4)/2)*0.8+0.7) * 1.5
      y = y * ((sin(t1+t4*4)/2)*0.8+0.7) * 1.5

      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;

      printf("%d %f %f %f %02x%02x%02x\n",flags,x,y,z,red,green,blue);
    }
  }
  exit(0);
}
