[Bf-blender-cvs] [4d8e3b649ba] master: Fix T52483: Fill is incorrect for interpolated strokes

Antonio Vazquez noreply at git.blender.org
Tue Aug 22 17:43:37 CEST 2017


Commit: 4d8e3b649ba8601acb17297ef5f671a097cb17b5
Author: Antonio Vazquez
Date:   Tue Aug 22 17:42:53 2017 +0200
Branches: master
https://developer.blender.org/rB4d8e3b649ba8601acb17297ef5f671a097cb17b5

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);



More information about the Bf-blender-cvs mailing list