|
|
1.1 root 1: #include "jerq.h"
2: /* These routines are NOT portable, but they are fast. */
3:
4: Point
5: add(a, b)
6: Point a, b;
7: {
8: register short *ap= &a.x, *bp= &b.x;
9: *ap++ += *bp++;
10: *ap += *bp;
11: return a;
12: }
13:
14: Point
15: sub(a, b)
16: Point a, b;
17: {
18: register short *ap= &a.x, *bp= &b.x;
19: *ap++ -= *bp++;
20: *ap -= *bp;
21: return a;
22: }
23:
24: Rectangle
25: inset(r,n)
26: Rectangle r;
27: register n;
28: {
29: register short *rp= &r.origin.x;
30: *rp++ += n;
31: *rp++ += n;
32: *rp++ -= n;
33: *rp -= n;
34: return r;
35: }
36:
37: Point
38: div(a, b)
39: Point a;
40: register b;
41: {
42: register short *ap= &a.x;
43: *(ap++)/=b;
44: *ap/=b;
45: return a;
46: }
47:
48: Point
49: mul(a, b)
50: Point a;
51: register b;
52: {
53: register short *ap= &a.x;
54: *(ap++)*=b;
55: *ap*=b;
56: return a;
57: }
58:
59: Rectangle
60: rsubp(r, p)
61: Rectangle r;
62: Point p;
63: {
64: register short *rp= &r.origin.x, *pp= &p.x;
65: *rp++ -= *pp++;
66: *rp++ -= *pp--;
67: *rp++ -= *pp++;
68: *rp -= *pp;
69: return r;
70: }
71:
72: Rectangle
73: raddp(r, p)
74: Rectangle r;
75: Point p;
76: {
77: register short *rp= &r.origin.x, *pp= &p.x;
78: *rp++ += *pp++;
79: *rp++ += *pp--;
80: *rp++ += *pp++;
81: *rp += *pp;
82: return r;
83: }
84:
85: eqpt(p, q)
86: Point p, q;
87: {
88: register long *pp=(long *)&p, *qq=(long *)&q;
89: return *pp==*qq;
90: }
91: eqrect(r, s)
92: Rectangle r, s;
93: {
94: register long *rr=(long *)&r, *ss=(long *)&s;
95: return *rr++==*ss++ && *rr==*ss;
96: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.