1*8ccd4a63SDavid du Colombier #include <u.h> 2*8ccd4a63SDavid du Colombier #include <libc.h> 3*8ccd4a63SDavid du Colombier #include <draw.h> 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier int rectclip(Rectangle * rp,Rectangle b)67dd7cddfSDavid du Colombierrectclip(Rectangle *rp, Rectangle b) /* first by reference, second by value */ 77dd7cddfSDavid du Colombier { 87dd7cddfSDavid du Colombier Rectangle *bp = &b; 97dd7cddfSDavid du Colombier /* 107dd7cddfSDavid du Colombier * Expand rectXrect() in line for speed 117dd7cddfSDavid du Colombier */ 127dd7cddfSDavid du Colombier if((rp->min.x<bp->max.x && bp->min.x<rp->max.x && 137dd7cddfSDavid du Colombier rp->min.y<bp->max.y && bp->min.y<rp->max.y)==0) 147dd7cddfSDavid du Colombier return 0; 157dd7cddfSDavid du Colombier /* They must overlap */ 167dd7cddfSDavid du Colombier if(rp->min.x < bp->min.x) 177dd7cddfSDavid du Colombier rp->min.x = bp->min.x; 187dd7cddfSDavid du Colombier if(rp->min.y < bp->min.y) 197dd7cddfSDavid du Colombier rp->min.y = bp->min.y; 207dd7cddfSDavid du Colombier if(rp->max.x > bp->max.x) 217dd7cddfSDavid du Colombier rp->max.x = bp->max.x; 227dd7cddfSDavid du Colombier if(rp->max.y > bp->max.y) 237dd7cddfSDavid du Colombier rp->max.y = bp->max.y; 247dd7cddfSDavid du Colombier return 1; 257dd7cddfSDavid du Colombier } 26