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

# vulnerable 20% of the time
  vul_frames = num_frames / 2

  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;

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

      if(k>vul_frames) flags = 4;
      else flags = 0;

      if(!flags) {
	red   = x * 127 + 128
	green = x * 127 + 128
	blue  = int((j/(num_verts-1)) * 255)
      } else {
# When bulletproof, turn red
        red = 255;
	green = blue = 0;
      }

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