[Bf-blender-cvs] [e9e1e8f6dc9] greasepencil-object: More cleanup

Antonioya noreply at git.blender.org
Thu Aug 23 10:33:55 CEST 2018


Commit: e9e1e8f6dc94650650ae8df587af9967c5bc4351
Author: Antonioya
Date:   Sat Aug 18 20:17:26 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBe9e1e8f6dc94650650ae8df587af9967c5bc4351

More cleanup

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

M	source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c

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

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
index edf98a8c921..a00991b3b47 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
@@ -265,6 +265,7 @@ static void gpencil_armature_bbone_defmats_cb(void *userdata, Link *iter, int in
 
 static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstroke *gps)
 {
+	bGPDspoint *pt = NULL;
 	bPoseChanDeform *pdef_info_array;
 	bPoseChanDeform *pdef_info = NULL;
 	bArmature *arm = armOb->data;
@@ -293,7 +294,7 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 	mul_m4_m4m4(postmat, obinv, armOb->obmat);
 	invert_m4_m4(premat, postmat);
 
-	/* initialize B_bone matrices and dual quaternions */
+	/* initialize B_bone matrices */
 	totchan = BLI_listbase_count(&armOb->pose->chanbase);
 
 	pdef_info_array = MEM_callocN(sizeof(bPoseChanDeform) * totchan, "bPoseChanDeform");
@@ -301,6 +302,7 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 	GpArmatureBBoneDefmatsData data = {
 		.pdef_info_array = pdef_info_array,.dualquats = dualquats
 	};
+
 	BLI_task_parallel_listbase(&armOb->pose->chanbase, &data,
 		gpencil_armature_bbone_defmats_cb, totchan > 512);
 
@@ -332,10 +334,10 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 	}
 	BLI_ghash_free(idx_hash, NULL, NULL);
 
-	for (i = 0; i < gps->totpoints; i++) {
-		MDeformVert *dvert;
+	for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
+		MDeformVert *dvert = &gps->dvert[i];
 		DualQuat *dq = NULL;
-		float *co;
+		float co[3];
 		float sumvec[3];
 		float *vec = NULL, (*smat)[3] = NULL;
 		float contrib = 0.0f;
@@ -344,7 +346,7 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 		vec = sumvec;
 
 		/* get the coord we work on */
-		//co = prevCos[i]; GPXX
+		copy_v3_v3(co, &pt->x);
 
 		/* Apply the object's matrix */
 		mul_m4_v3(premat, co);
@@ -379,6 +381,7 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 
 		/* always, check above code */
 		mul_m4_v3(postmat, co);
+		copy_v3_v3(&pt->x, co);
 	}
 
 	if (defnrToPC)
@@ -401,30 +404,14 @@ static void gpencil_armature_deform_verts(Object *armOb, Object *target, bGPDstr
 /* deform stroke */
 static void deformStroke(
         GpencilModifierData *md, Depsgraph *UNUSED(depsgraph),
-        Object *ob, bGPDlayer *gpl, bGPDstroke *gps)
+        Object *ob, bGPDlayer *UNUSED(gpl), bGPDstroke *gps)
 {
 	ArmatureGpencilModifierData *mmd = (ArmatureGpencilModifierData *)md;
 	if (!mmd->object) {
 		return;
 	}
 
-	//int vindex = defgroup_name_index(ob, mmd->vgname);
-	//float weight = 1.0f;
-
-	//bPoseChannel *pchan = BKE_pose_channel_find_name(mmd->object->pose, mmd->subtarget);
-	//float dmat[4][4];
-
-	/* loop points and apply deform */
-	for (int i = 0; i < gps->totpoints; i++) {
-		bGPDspoint *pt = &gps->points[i];
-		MDeformVert *dvert = &gps->dvert[i];
-
-		//weight = get_modifier_point_weight(dvert, 0, vindex);
-		//if (weight < 0) {
-		//	continue;
-		//}
-	//		gp_armature_co_apply(&tData, weight, pt);
-	}
+	gpencil_armature_deform_verts(mmd->object, ob, gps);
 }
 
 static void bakeModifier(



More information about the Bf-blender-cvs mailing list