[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57973] trunk/blender/source/blender/ editors/object/object_vgroup.c: Fix Weight Paint(Weight-Transfer): active vgroup does not match active bone when new vgroups where created during transfer

Gaia Clary gaia.clary at machinimatrix.org
Wed Jul 3 22:31:38 CEST 2013


Revision: 57973
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57973
Author:   gaiaclary
Date:     2013-07-03 20:31:38 +0000 (Wed, 03 Jul 2013)
Log Message:
-----------
Fix Weight Paint(Weight-Transfer): active vgroup does not match active bone when new vgroups where created during transfer

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_vgroup.c

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2013-07-03 19:49:54 UTC (rev 57972)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2013-07-03 20:31:38 UTC (rev 57973)
@@ -67,6 +67,7 @@
 #include "BKE_object.h"
 #include "BKE_lattice.h"
 
+#include "DNA_armature_types.h"
 #include "RNA_access.h"
 #include "RNA_define.h"
 #include "RNA_enum_types.h"
@@ -3748,6 +3749,7 @@
 {
 	Scene *scene = CTX_data_scene(C);
 	Object *ob_act = CTX_data_active_object(C);
+	Object *armobj = BKE_object_pose_armature_get(ob_act);
 	bDeformGroup *dg_src;
 	int fail = 0;
 
@@ -3792,6 +3794,16 @@
 
 	CTX_DATA_END;
 
+	/* Ensure active Weight Group is set to active bone
+	 * when new groups have been added during Weight Transfer
+	 */
+	if (armobj && (armobj->mode & OB_MODE_POSE)) {
+		struct bArmature *arm = armobj->data;
+		if (arm->act_bone && (arm->act_bone->layer & arm->layer)) {
+			ob_act->actdef = defgroup_name_index(ob_act, arm->act_bone->name)+1;
+		}
+	}
+
 	if (fail != 0) {
 		return OPERATOR_CANCELLED;
 	}




More information about the Bf-blender-cvs mailing list