diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libdraw/rectclip.c |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libdraw/rectclip.c')
-rwxr-xr-x | sys/src/libdraw/rectclip.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/src/libdraw/rectclip.c b/sys/src/libdraw/rectclip.c new file mode 100755 index 000000000..2228628b8 --- /dev/null +++ b/sys/src/libdraw/rectclip.c @@ -0,0 +1,25 @@ +#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; +} |