memset(intrsx, 0, sizeof(intrsx));
- /*x left */
+ /* top left */
lp->pos.x = minx;
- /*top */
lp->pos.y = maxy;
bp = xlintersections(xlp, objp, intrsx);
if (bp.n == 0)
return bp;
- /*x right */
+ /* bottom right */
lp->pos.x = maxx;
- /* bottom */
lp->pos.y = miny;
nbp = xlintersections(xlp, objp, intrsx);
if (nbp.n == 0)
if (nbp.area < bp.area)
bp = nbp;
- /*mid */
+ /* bottom left */
lp->pos.x = minx;
- lp->pos.y = objp->pos.y;
- nbp = xlintersections(xlp, objp, intrsx);
- if (nbp.n == 0)
- return nbp;
- if (nbp.area < bp.area)
- bp = nbp;
- /*bottom */
lp->pos.y = miny;
nbp = xlintersections(xlp, objp, intrsx);
if (nbp.n == 0)
if (nbp.area < bp.area)
bp = nbp;
- /*x right */
+ /* top right */
lp->pos.x = maxx;
- /*top */
lp->pos.y = maxy;
nbp = xlintersections(xlp, objp, intrsx);
if (nbp.n == 0)
return nbp;
if (nbp.area < bp.area)
bp = nbp;
- /*mid */
+
+ /* mid left */
+ lp->pos.x = minx;
lp->pos.y = objp->pos.y;
nbp = xlintersections(xlp, objp, intrsx);
- if (nbp.n == 0)
- return nbp;
- if (nbp.area < bp.area)
- bp = nbp;
- /*bottom */
- lp->pos.y = miny;
- nbp = xlintersections(xlp, objp, intrsx);
if (nbp.n == 0)
return nbp;
if (nbp.area < bp.area)
bp = nbp;
- /*x mid */
- lp->pos.x = objp->pos.x;
- /*top */
- lp->pos.y = maxy;
- nbp = xlintersections(xlp, objp, intrsx);
- if (nbp.n == 0)
- return nbp;
- if (nbp.area < bp.area)
- bp = nbp;
- /*bottom */
- lp->pos.y = miny;
+ /* mid right */
+ lp->pos.x = maxx;
+ lp->pos.y = objp->pos.y;
nbp = xlintersections(xlp, objp, intrsx);
if (nbp.n == 0)
return nbp;