Fix bug 1245
authorerg <devnull@localhost>
Wed, 12 Dec 2007 03:08:57 +0000 (03:08 +0000)
committererg <devnull@localhost>
Wed, 12 Dec 2007 03:08:57 +0000 (03:08 +0000)
lib/dotgen/dotsplines.c

index 44ef57d4970f6b9c8453e6087ffd146d1f20b3e3..709a2e65e7f47a2204e2333ca8a8fe6eabf477a9 100644 (file)
@@ -924,10 +924,18 @@ make_flat_adj_edges(path* P, edge_t** edges, int ind, int cnt, edge_t* e0,
        if ((auxe == hvye) & !ED_alg(auxe)) continue; /* pseudo-edge */
        auxbz = ED_spl(auxe)->list;
        bz = new_spline(e, auxbz->size);
-       bz->sflag = auxbz->sflag;
-       bz->sp = transform(auxbz->sp, del, GD_flip(g));
-       bz->eflag = auxbz->eflag;
-       bz->ep = transform(auxbz->ep, del, GD_flip(g));
+       if (GD_flip(g)) {
+           bz->sflag = auxbz->eflag;
+           bz->sp = transform(auxbz->ep, del, 1);
+           bz->eflag = auxbz->sflag;
+           bz->ep = transform(auxbz->sp, del, 1);
+       }
+       else {
+           bz->sflag = auxbz->sflag;
+           bz->sp = transform(auxbz->sp, del, 0);
+           bz->eflag = auxbz->eflag;
+           bz->ep = transform(auxbz->ep, del, 0);
+       }
        for (j = 0; j <  auxbz->size; j++) {
            point pt;
            pt = bz->list[j] = transform(auxbz->list[j], del, GD_flip(g));