00001 #ifndef _MQINSETS4I_H_
00002 #define _MQINSETS4I_H_
00003
00004
00005
00006
00007
00008
00017 enum {RECTANGLE_GLOBAL_TO_LOCAL,
00018 RECTANGLE_LOCAL_TO_GLOBAL};
00019
00027 struct Insets4i
00028 {
00029 int BIN_START;
00030 int BIN_STOP;
00031 int SCAN_START;
00032 int SCAN_STOP;
00033 };
00034
00035 typedef struct Insets4i Insets4i;
00036 typedef struct Insets4i Rectangle4i;
00037
00050 void Insets4i_init(Insets4i *rRect, int x1, int x2, int y1, int y2);
00051 int Insets4i_cmp (const void *rect1, const void* rect2);
00052
00053 Insets4i Insets4i_new(int x1, int x2, int y1, int y2);
00054 MQDimensions2i Insets4i_getDimensions2i(Insets4i* rect);
00055 int Insets4i_isPointWithin(Insets4i* ref, int x, int y);
00056 int Insets4i_areInsetsWithin(Insets4i* ref, Insets4i* rect);
00057 void Insets4i_merge(Insets4i* result, Insets4i* rect1, Insets4i* rect2);
00058 int Insets4i_correctSubRect(Insets4i* subrect, Insets4i* rect);
00059 int Insets4i_calcArea(Insets4i *rect);
00060
00070 void Insets4i_fprint (FILE* fp, Insets4i *R);
00071
00080 void Insets4i_fprintln(FILE* fp, Insets4i *R);
00081
00092 void Insets4i_fprintf (FILE* fp, Insets4i *R, const char* format);
00093 void Insets4i_fprintAsHeader (FILE* fp, Insets4i *R);
00094
00095 Insets4i* Insets4iArray_create(int size, int start_index);
00096 void Insets4iArray_fprint (FILE* fp, Insets4i *R, int nstart, int nstop);
00097 void Insets4iArray_fprintf(FILE* fp, Insets4i *R, int nstart, int nstop, const char* format);
00098
00099
00100 #endif
00101