[Bf-blender-cvs] [9d55e5f5edd] greasepencil-object: First try to apply Lattice GP modifier in all frames

Antonio Vazquez noreply at git.blender.org
Sat Aug 19 13:40:06 CEST 2017


Commit: 9d55e5f5eddf46d5adb8d28aedd33bdb33be257d
Author: Antonio Vazquez
Date:   Fri Aug 18 16:21:51 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB9d55e5f5eddf46d5adb8d28aedd33bdb33be257d

First try to apply Lattice GP modifier in all frames

Still not working but define the initial steps to do it.

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

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 835619f7f8e..6345712361e 100644
--- a/source/blender/modifiers/intern/MOD_gpencillattice.c
+++ b/source/blender/modifiers/intern/MOD_gpencillattice.c
@@ -36,6 +36,7 @@
 
 #include "BLI_utildefines.h"
 
+#include "BKE_context.h"
 #include "BKE_DerivedMesh.h"
 #include "BKE_gpencil.h"
 #include "BKE_lattice.h"
@@ -45,6 +46,8 @@
 
 #include "MOD_modifiertypes.h"
 
+#include "DEG_depsgraph.h"
+
 static void initData(ModifierData *md)
 {
 	GpencilLatticeModifierData *gpmd = (GpencilLatticeModifierData *)md;
@@ -71,9 +74,11 @@ static DerivedMesh *applyModifier(ModifierData *md, const struct EvaluationConte
 	ModifierApplyFlag UNUSED(flag))
 {
 	GpencilLatticeModifierData *mmd = (GpencilLatticeModifierData *)md;
-	LatticeDeformData *ldata = (LatticeDeformData *)mmd->cache_data;
+	LatticeDeformData *ldata = NULL;
+	Scene *scene = CTX_data_scene(mmd->C);
 	bGPdata *gpd;
 	Object *latob = NULL;
+	int oldframe = CFRA;
 
 	if ((!ob) || (!ob->gpd)) {
 		return NULL;
@@ -87,16 +92,23 @@ static DerivedMesh *applyModifier(ModifierData *md, const struct EvaluationConte
 	for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 		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);
+				/* recalculate lattice data */
+				BKE_gpencil_lattice_init(ob);
+
 				BKE_gpencil_lattice_modifier(-1, (GpencilLatticeModifierData *)md, ob, gpl, gps);
 			}
 		}
 	}
 
+	ldata = (LatticeDeformData *)mmd->cache_data;
 	if (ldata) {
 		end_latt_deform(ldata);
 		mmd->cache_data = NULL;
 	}
 
+	CFRA = oldframe;
 	return NULL;
 }



More information about the Bf-blender-cvs mailing list