Commit: 27c42e05c41f072bf401d7d81cce9dcb599904af
Author: Antonio Vazquez
Date:   Tue Aug 22 17:42:53 2017 +0200
Branches: blender-v2.79-release
https://developer.blender.org/rB27c42e05c41f072bf401d7d81cce9dcb599904af

Fix T52483: Fill is incorrect for interpolated strokes

The recalc flag must be enabled for new interpolated strokes.

===================================================================

M       source/blender/editors/gpencil/gpencil_interpolate.c

===================================================================

diff --git a/source/blender/editors/gpencil/gpencil_interpolate.c 
b/source/blender/editors/gpencil/gpencil_interpolate.c
index 59b5b41f114..4bcc9f7b811 100644
--- a/source/blender/editors/gpencil/gpencil_interpolate.c
+++ b/source/blender/editors/gpencil/gpencil_interpolate.c
@@ -284,7 +284,9 @@ static void gp_interpolate_set_points(bContext *C, 
tGPDinterpolate *tgpi)
                        new_stroke = MEM_dupallocN(gps_from);
                        new_stroke->points = MEM_dupallocN(gps_from->points);
                        new_stroke->triangles = 
MEM_dupallocN(gps_from->triangles);
-                       
+                       new_stroke->tot_triangles = 0;
+                       new_stroke->flag |= GP_STROKE_RECALC_CACHES;
+
                        if (valid) {
                                /* if destination stroke is smaller, resize 
new_stroke to size of gps_to stroke */
                                if (gps_from->totpoints > gps_to->totpoints) {
@@ -302,6 +304,7 @@ static void gp_interpolate_set_points(bContext *C, 
tGPDinterpolate *tgpi)
                                new_stroke->points = 
MEM_recallocN(new_stroke->points, sizeof(*new_stroke->points));
                                new_stroke->tot_triangles = 0;
                                new_stroke->triangles = 
MEM_recallocN(new_stroke->triangles, sizeof(*new_stroke->triangles));
+                               new_stroke->flag |= GP_STROKE_RECALC_CACHES;
                        }
                        
                        /* add to strokes */
@@ -986,7 +989,9 @@ static int gpencil_interpolate_seq_exec(bContext *C, 
wmOperator *op)
                                new_stroke = MEM_dupallocN(gps_from);
                                new_stroke->points = 
MEM_dupallocN(gps_from->points);
                                new_stroke->triangles = 
MEM_dupallocN(gps_from->triangles);
-                               
+                               new_stroke->tot_triangles = 0;
+                               new_stroke->flag |= GP_STROKE_RECALC_CACHES;
+
                                /* if destination stroke is smaller, resize 
new_stroke to size of gps_to stroke */
                                if (gps_from->totpoints > gps_to->totpoints) {
                                        new_stroke->points = 
MEM_recallocN(new_stroke->points, sizeof(*new_stroke->points) * 
gps_to->totpoints);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to