/*
  Elliot Nicholls 1998 <nichoej@ee.uwa.edu.au>

  Header file for the gaitgenerator. 
  should be included in eyebot compiled files with source code
  generated by this program.
*/

/* defines */
#define FPS 50
#define NUM_LINKS 12
#define ROBOT_TYPE 0
#define SIDE_LINKS 9
#define FRONT_LINKS 8
#define TOP_LINKS 4
#define TORSO_LENGTH 50
#define LEG_LINK_LENGTH 30
#define HIP_WIDTH 40
#define FOOT_LENGTH 10
#define FOOT_WIDTH 10
#define HEAD_RADIUS 10
#define DEFAULT_TIME_DELTA 500
#define NUM_ACC 2

/* typedefs and structures */
typedef enum{ rHipT,rHipB,rKnee,rAnkle,torso,lAnkle,lKnee,lHipB,lHipT,rArm,lArm,rotSide} LINK;
typedef enum{ srHipB,srKnee,srAnkle,storso,slAnkle,slKnee,slHipB,srArm,slArm} SLINK;
typedef enum{ frHipB,frKnee,frAnkle,ftorso,flAnkle,flKnee,flHipB,fPelv} FLINK;
typedef enum{ trHipT,trPelv,tlPelv,tlHipT} TLINK;
typedef enum{ frontAcc, sideAcc} ACC;

typedef struct {
  short x;
  short y;
  short w;
  short h;
} XWinInfo;

typedef struct {
  XWinInfo side;
  XWinInfo front;
  XWinInfo top;
} ViewInfo;

typedef int ANGLES[NUM_LINKS];
typedef float FANGLES[NUM_LINKS];
typedef int ACCDATA[NUM_ACC];
