| #include <u.h> |
| #include <libc.h> |
| #include <draw.h> |
| |
| int |
| rectclip(Rectangle *rp, Rectangle b) /* first by reference, second by value */ |
| { |
| Rectangle *bp = &b; |
| /* |
| * Expand rectXrect() in line for speed |
| */ |
| if((rp->min.x<bp->max.x && bp->min.x<rp->max.x && |
| rp->min.y<bp->max.y && bp->min.y<rp->max.y)==0) |
| return 0; |
| /* They must overlap */ |
| if(rp->min.x < bp->min.x) |
| rp->min.x = bp->min.x; |
| if(rp->min.y < bp->min.y) |
| rp->min.y = bp->min.y; |
| if(rp->max.x > bp->max.x) |
| rp->max.x = bp->max.x; |
| if(rp->max.y > bp->max.y) |
| rp->max.y = bp->max.y; |
| return 1; |
| } |