V10/libj/rect.c

Compare this file to the similar file:
Show the results in this format:

#include "jerq.h"

#define c corner
#define o origin

int rectXrect(r, s) Rectangle r, s;
{
	return(r.o.x<s.c.x && s.o.x<r.c.x && r.o.y<s.c.y && s.o.y<r.c.y);
}

int ptinrect(p, r) Point p; Rectangle r;
{
	return(p.x>=r.o.x && p.x<r.c.x && p.y>=r.o.y && p.y<r.c.y);
}

rectclip(rp, b)	register Rectangle *rp; Rectangle b;
{	register Rectangle *bp= &b;
	/* Expand rectXrect() in line for speed */
	if ((rp->o.x < bp->c.x && bp->o.x < rp->c.x &&
	     rp->o.y < bp->c.y && bp->o.y < rp->c.y)==0) return 0;
	/* They must overlap */
	if (rp->origin.x < bp->origin.x) rp->origin.x = bp->origin.x;
	if (rp->origin.y < bp->origin.y) rp->origin.y = bp->origin.y;
	if (rp->corner.x > bp->corner.x) rp->corner.x = bp->corner.x;
	if (rp->corner.y > bp->corner.y) rp->corner.y = bp->corner.y;
	return 1;
}