/usr/share/z88dk/include/rect.h is in z88dk-data 1.8.ds1-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #ifndef _RECT_H
#define _RECT_H
/*
* Points, Intervals and Rectangles
* 05.2006 aralbrec
*
*/
#include <sys/types.h>
/*
* A library of routines that can check for and compute intersections amongst
* points, intervals and rectangles. 8-bit and 16-bit coordinates are supported
* by two sets of subroutines. In both cases, the coordinate space wraps so
* that, for example, an 8-bit interval beginning at coordinate 250 with width
* 50 occupies the points [250,255]+[0,43] inclusive (ie 250 right through 43).
*
*/
struct r_Ival8 {
uchar coord; // +0
uchar width; // +1
};
struct r_Ival16 {
uint coord; // +0
uint width; // +2
};
struct r_Rect8 {
uchar x; // +0 struct r_Ival8
uchar width; // +1
uchar y; // +2 struct r_Ival8
uchar height; // +3
};
struct r_Rect16 {
uint x; // +0 struct r_Ival16
uint width; // +2
uint y; // +4 struct r_Ival16
uint height; // +6
};
// Detect whether points, intervals and rectangles intersect
extern int __LIB__ r_IsPtInIval8(uchar x, struct r_Ival8 *i);
extern int __LIB__ r_IsPtInRect8(uchar x, uchar y, struct r_Rect8 *r);
extern int __LIB__ r_IsIvalInIval8(struct r_Ival8 *i1, struct r_Ival8 *i2);
extern int __LIB__ r_IsRectInRect8(struct r_Rect8 *r1, struct r_Rect8 *r2);
extern int __LIB__ r_IsPtInIval16(uint x, struct r_Ival16 *i);
extern int __LIB__ r_IsPtInRect16(uint x, uint y, struct r_Rect16 *r);
extern int __LIB__ r_IsIvalInIval16(struct r_Ival16 *i1, struct r_Ival16 *i2);
extern int __LIB__ r_IsRectInRect16(struct r_Rect16 *r1, struct r_Rect16 *r2);
// Return the result of interval and rectangle intersections
extern int __LIB__ r_IntersectIval8(struct r_Ival8 *i1, struct r_Ival8 *i2, struct r_Ival8 *result);
extern int __LIB__ r_IntersectRect8(struct r_Rect8 *r1, struct r_Rect8 *r2, struct r_Rect8 *result);
extern int __LIB__ r_IntersectIval16(struct r_Ival16 *i1, struct r_Ival16 *i2, struct r_Ival16 *result);
extern int __LIB__ r_IntersectRect16(struct r_Rect16 *r1, struct r_Rect16 *r2, struct r_Rect16 *result);
#endif
|