Blame


1 ed7c8e8d 2003-09-30 devnull #include <u.h>
2 ed7c8e8d 2003-09-30 devnull #include <libc.h>
3 ed7c8e8d 2003-09-30 devnull #include <draw.h>
4 ed7c8e8d 2003-09-30 devnull
5 ed7c8e8d 2003-09-30 devnull int
6 ed7c8e8d 2003-09-30 devnull rectclip(Rectangle *rp, Rectangle b) /* first by reference, second by value */
7 ed7c8e8d 2003-09-30 devnull {
8 ed7c8e8d 2003-09-30 devnull Rectangle *bp = &b;
9 ed7c8e8d 2003-09-30 devnull /*
10 ed7c8e8d 2003-09-30 devnull * Expand rectXrect() in line for speed
11 ed7c8e8d 2003-09-30 devnull */
12 ed7c8e8d 2003-09-30 devnull if((rp->min.x<bp->max.x && bp->min.x<rp->max.x &&
13 ed7c8e8d 2003-09-30 devnull rp->min.y<bp->max.y && bp->min.y<rp->max.y)==0)
14 ed7c8e8d 2003-09-30 devnull return 0;
15 ed7c8e8d 2003-09-30 devnull /* They must overlap */
16 ed7c8e8d 2003-09-30 devnull if(rp->min.x < bp->min.x)
17 ed7c8e8d 2003-09-30 devnull rp->min.x = bp->min.x;
18 ed7c8e8d 2003-09-30 devnull if(rp->min.y < bp->min.y)
19 ed7c8e8d 2003-09-30 devnull rp->min.y = bp->min.y;
20 ed7c8e8d 2003-09-30 devnull if(rp->max.x > bp->max.x)
21 ed7c8e8d 2003-09-30 devnull rp->max.x = bp->max.x;
22 ed7c8e8d 2003-09-30 devnull if(rp->max.y > bp->max.y)
23 ed7c8e8d 2003-09-30 devnull rp->max.y = bp->max.y;
24 ed7c8e8d 2003-09-30 devnull return 1;
25 ed7c8e8d 2003-09-30 devnull }