diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-09-17 15:00:09 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-09-17 15:00:09 +0400 |
commit | 63e400503956bd5a6792da3aa4bbbf6a2c8e5aa0 (patch) | |
tree | 25a427067725e763b96065ae82a5b836c1a39b4d /source/blender/blenkernel | |
parent | 4478197ef6781f143ef39692cda1d82d8e9f5296 (diff) |
Fix #36747: curve bevel and extrude issue
Was a small mistake in bevel list optimization,
no need to check whether first/last points are
the same coord if curve is not cyclic.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 334429e3738..02b35794d28 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -2665,9 +2665,16 @@ void BKE_curve_bevelList_make(Object *ob, ListBase *nurbs, bool for_render) bl = bev->first; while (bl) { if (bl->nr) { /* null bevel items come from single points */ + bool is_cyclic = bl->poly != -1; nr = bl->nr; - bevp1 = (BevPoint *)(bl + 1); - bevp0 = bevp1 + (nr - 1); + if (is_cyclic) { + bevp1 = (BevPoint *)(bl + 1); + bevp0 = bevp1 + (nr - 1); + } + else { + bevp0 = (BevPoint *)(bl + 1); + bevp1 = bevp0 + 1; + } nr--; while (nr--) { if (fabsf(bevp0->vec[0] - bevp1->vec[0]) < 0.00001f) { |