Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-09-17 15:00:09 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-09-17 15:00:09 +0400
commit63e400503956bd5a6792da3aa4bbbf6a2c8e5aa0 (patch)
tree25a427067725e763b96065ae82a5b836c1a39b4d /source/blender/blenkernel/intern/curve.c
parent4478197ef6781f143ef39692cda1d82d8e9f5296 (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/intern/curve.c')
-rw-r--r--source/blender/blenkernel/intern/curve.c11
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) {