From: Donald Caldwell Date: Wed, 4 Jan 2012 19:38:16 +0000 (-0500) Subject: some changes to the ad-hoc label positioning at the beginning of xladjust X-Git-Tag: LAST_LIBGRAPH~32^2~585^2^2^2~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d92e72c2af72482358184687dba981e134100ee4;p=graphviz some changes to the ad-hoc label positioning at the beginning of xladjust reporting addition of printobjects added in previous revision --- diff --git a/lib/label/xlabels.c b/lib/label/xlabels.c index b688af147..c163bbb89 100644 --- a/lib/label/xlabels.c +++ b/lib/label/xlabels.c @@ -454,17 +454,15 @@ static BestPos_t xladjust(XLabels_t * xlp, object_t * objp) 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) @@ -472,15 +470,8 @@ static BestPos_t xladjust(XLabels_t * xlp, object_t * objp) 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) @@ -488,41 +479,27 @@ static BestPos_t xladjust(XLabels_t * xlp, object_t * objp) 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;