// ARROWSTRUCT
//
// Defines the attributes of an arrow.
#ifndef _GRAPH_H_
#define _GRAPH_H_

typedef struct tARROWSTRUCT {
	int nWidth;		// width (in pixels) of the full base of the arrowhead
	float fTheta;	// angle (in radians) at the arrow tip between the two
					//  sides of the arrowhead
	unsigned char bFill;		// flag indicating whether or not the arrowhead should be
					//  filled
} ARROWSTRUCT;

typedef struct tPOINT {
    int x;
    int y;
} POINT;

inline void GRAPH_SetPixel(unsigned char x, unsigned char y, unsigned int color);

void GRAPH_TextGoTo(unsigned char x, unsigned char y);
void GRAPH_WriteChar(char charToWrite);
void GRAPH_ClearScreen(void);
void GRAPH_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a, char color);
void GRAPH_RectangleFilled(unsigned char x, unsigned char y, unsigned char b, unsigned char a,char color);
void GRAPH_Circle(unsigned char cx, unsigned char cy ,unsigned char radius, char color);
void GRAPH_Line(int X1, int Y1,int X2,int Y2, char color);
void GRAPH_SquareRotated(int iX0,int iY0,int iX1,int iY1,int iX2,int iY2, float iRotation, char color);
void GRAPH_BlackWhite(void);
void GRAPH_WhiteBlack(void);
void GRAPH_Arrow(int iX0,int iY0,int iX1,int iY1,char color);
void GRAPH_TriangleFill(POINT *pPoints,int size,int color);

#endif

