#ifndef _MASK_H_
#define _MASH_H_

#include "constants.h"
#include "synch_constants.h"

typedef unsigned char uchar;

typedef uchar mask_t[IMAGE_HEIGHT * IMAGE_WIDTH];
mask_t* allocMask();
void freeMask(mask_t*);
void clearMask(mask_t*);
void printMask(mask_t*);
void markMask(mask_t* m, int x, int y, uchar val);
uchar getMask(mask_t* m, int x, int y);
void generateCircle(mask_t* mask, int x, int y, int rad);
void generateRectangle(mask_t*, int, int, int, int, int);
void generateSegment(mask_t* mask, int x1, int y1, int x2, int y2, int width);

typedef struct {
  int x;
  int y;
  int ang1;
  int ang2;
  int ang3;
} model_t;
model_t* allocModel(int x, int y, int ang1, int ang2, int ang3);
void freeModel(model_t* t);
void copyModel(model_t* src, model_t* des);
void printModel(model_t* t);
mask_t* generateModelMask(model_t* t);

int round(float x);

#endif
