#ifndef RASG #include #include #include "attrib.h" #define MIN(x,y) ((x)<(y)?(x):(y)) #define MAX(x,y) ((x)>(y)?(x):(y)) typedef struct s_rect { short r1, c1; /* upper left corner */ short r2, c2; /* lower right corner */ } RECT; enum dir { DIR_UP, DIR_DOWN, DIR_LEFT, DIR_RIGHT, DIR_NONE }; #define RWIDTH(a) ((a)->c2 - (a)->c1 + 1) #define RHEIGHT(a) ((a)->r2 - (a)->r1 + 1) #define RASG(a,rw1,cl1,rw2,cl2) ((a)->r1=rw1,(a)->c1=cl1,(a)->r2=rw2,(a)->c2=cl2) #define GIANT 255 /* largest possible coordinate */ extern RECT GIANT_RECT; extern bool clip(/**/ const RECT *, int, int, RECT * /**/); extern void intersect(/**/ const RECT *, const RECT *, RECT * /**/); extern void enclose(/**/ const RECT *, const RECT *, RECT * /**/); #endif