[Bf-blender-cvs] [d1768b616d5] greasepencil-object: Apply lattice modifer in each frame

Antonio Vazquez noreply at git.blender.org
Sun Sep 10 10:03:02 CEST 2017


Commit: d1768b616d5e64bb3fa4c53afb0a2189c2fabe79
Author: Antonio Vazquez
Date:   Sat Sep 9 16:17:06 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rBd1768b616d5e64bb3fa4c53afb0a2189c2fabe79

Apply lattice modifer in each frame

The lattice must be evaluated in each frame, not in the location of the first frame only.

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

M	source/blender/modifiers/intern/MOD_gpencillattice.c

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

diff --git a/source/blender/modifiers/intern/MOD_gpencillattice.c b/source/blender/modifiers/intern/MOD_gpencillattice.c
index 6345712361e..5a5c6130368 100644
--- a/source/blender/modifiers/intern/MOD_gpencillattice.c
+++ b/source/blender/modifiers/intern/MOD_gpencillattice.c
@@ -41,6 +41,8 @@
 #include "BKE_gpencil.h"
 #include "BKE_lattice.h"
 #include "BKE_library_query.h"
+#include "BKE_scene.h"
+#include "BKE_main.h"
 
 #include "MEM_guardedalloc.h"
 
@@ -69,13 +71,14 @@ static void copyData(ModifierData *md, ModifierData *target)
 	modifier_copyData_generic(md, target);
 }
 
-static DerivedMesh *applyModifier(ModifierData *md, const struct EvaluationContext *UNUSED(eval_ctx), Object *ob,
+static DerivedMesh *applyModifier(ModifierData *md, const struct EvaluationContext *eval_ctx, Object *ob,
 	DerivedMesh *UNUSED(dm),
 	ModifierApplyFlag UNUSED(flag))
 {
 	GpencilLatticeModifierData *mmd = (GpencilLatticeModifierData *)md;
 	LatticeDeformData *ldata = NULL;
 	Scene *scene = CTX_data_scene(mmd->C);
+	Main *bmain = CTX_data_main(mmd->C);
 	bGPdata *gpd;
 	Object *latob = NULL;
 	int oldframe = CFRA;
@@ -93,7 +96,7 @@ static DerivedMesh *applyModifier(ModifierData *md, const struct EvaluationConte
 		for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
 			for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
 				CFRA = gpf->framenum;
-				DEG_id_tag_update(&latob->id, OB_RECALC_ALL);
+				BKE_scene_update_for_newframe(eval_ctx, bmain, scene);
 				/* recalculate lattice data */
 				BKE_gpencil_lattice_init(ob);



More information about the Bf-blender-cvs mailing list