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