[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58339] trunk/blender/source/blender: fix [#36176] Connected font Bevel moves inwards for some letter combinations
Campbell Barton
ideasman42 at gmail.com
Wed Jul 17 16:05:50 CEST 2013
Revision: 58339
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58339
Author: campbellbarton
Date: 2013-07-17 14:05:50 +0000 (Wed, 17 Jul 2013)
Log Message:
-----------
fix [#36176] Connected font Bevel moves inwards for some letter combinations
bevel wasn't taking into account overlapping text (bug goes back to 1.8).
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/curve.c
trunk/blender/source/blender/makesdna/DNA_curve_types.h
Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c 2013-07-17 12:57:03 UTC (rev 58338)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c 2013-07-17 14:05:50 UTC (rev 58339)
@@ -2323,6 +2323,7 @@
bl = MEM_callocN(sizeof(BevList) + 1 * sizeof(BevPoint), "makeBevelList1");
BLI_addtail(&(cu->bev), bl);
bl->nr = 0;
+ bl->charidx = nu->charidx;
}
else {
if (G.is_rendering && cu->resolu_ren != 0)
@@ -2335,10 +2336,10 @@
bl = MEM_callocN(sizeof(BevList) + len * sizeof(BevPoint), "makeBevelList2");
BLI_addtail(&(cu->bev), bl);
- if (nu->flagu & CU_NURB_CYCLIC) bl->poly = 0;
- else bl->poly = -1;
+ bl->poly = (nu->flagu & CU_NURB_CYCLIC) ? 0 : -1;
bl->nr = len;
bl->dupe_nr = 0;
+ bl->charidx = nu->charidx;
bevp = (BevPoint *)(bl + 1);
bp = nu->bp;
@@ -2358,8 +2359,8 @@
bl = MEM_callocN(sizeof(BevList) + len * sizeof(BevPoint), "makeBevelBPoints");
BLI_addtail(&(cu->bev), bl);
- if (nu->flagu & CU_NURB_CYCLIC) bl->poly = 0;
- else bl->poly = -1;
+ bl->poly = (nu->flagu & CU_NURB_CYCLIC) ? 0 : -1;
+ bl->charidx = nu->charidx;
bevp = (BevPoint *)(bl + 1);
a = nu->pntsu - 1;
@@ -2445,8 +2446,8 @@
BLI_addtail(&(cu->bev), bl);
bl->nr = len;
bl->dupe_nr = 0;
- if (nu->flagu & CU_NURB_CYCLIC) bl->poly = 0;
- else bl->poly = -1;
+ bl->poly = (nu->flagu & CU_NURB_CYCLIC) ? 0 : -1;
+ bl->charidx = nu->charidx;
bevp = (BevPoint *)(bl + 1);
BKE_nurb_makeCurve(nu, &bevp->vec[0],
@@ -2572,9 +2573,11 @@
bl = sd->bl; /* is bl a hole? */
sd1 = sortdata + (a - 1);
for (b = a - 1; b >= 0; b--, sd1--) { /* all polys to the left */
- if (bevelinside(sd1->bl, bl)) {
- bl->hole = 1 - sd1->bl->hole;
- break;
+ if (sd1->bl->charidx == bl->charidx) { /* for text, only check matching char */
+ if (bevelinside(sd1->bl, bl)) {
+ bl->hole = 1 - sd1->bl->hole;
+ break;
+ }
}
}
}
Modified: trunk/blender/source/blender/makesdna/DNA_curve_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_curve_types.h 2013-07-17 12:57:03 UTC (rev 58338)
+++ trunk/blender/source/blender/makesdna/DNA_curve_types.h 2013-07-17 14:05:50 UTC (rev 58339)
@@ -75,6 +75,7 @@
struct BevList *next, *prev;
int nr, dupe_nr;
int poly, hole;
+ int charidx;
} BevList;
/* These two Lines with # tell makesdna this struct can be excluded. */
More information about the Bf-blender-cvs
mailing list