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