[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57983] trunk/blender/source/blender: stop adding groups from changing the active group with weight transfer, add BKE_defgroup_new function.

Campbell Barton ideasman42 at gmail.com
Thu Jul 4 05:56:19 CEST 2013


Revision: 57983
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57983
Author:   campbellbarton
Date:     2013-07-04 03:56:18 +0000 (Thu, 04 Jul 2013)
Log Message:
-----------
stop adding groups from changing the active group with weight transfer, add BKE_defgroup_new function.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_deform.h
    trunk/blender/source/blender/blenkernel/intern/deform.c
    trunk/blender/source/blender/editors/object/object_vgroup.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c

Modified: trunk/blender/source/blender/blenkernel/BKE_deform.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_deform.h	2013-07-04 02:39:58 UTC (rev 57982)
+++ trunk/blender/source/blender/blenkernel/BKE_deform.h	2013-07-04 03:56:18 UTC (rev 57983)
@@ -40,6 +40,7 @@
 struct bDeformGroup;
 struct MDeformVert;
 
+struct bDeformGroup *BKE_defgroup_new(struct Object *ob, const char *name);
 void                 defgroup_copy_list(struct ListBase *lb1, struct ListBase *lb2);
 struct bDeformGroup *defgroup_duplicate(struct bDeformGroup *ingroup);
 struct bDeformGroup *defgroup_find_name(struct Object *ob, const char *name);

Modified: trunk/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/deform.c	2013-07-04 02:39:58 UTC (rev 57982)
+++ trunk/blender/source/blender/blenkernel/intern/deform.c	2013-07-04 03:56:18 UTC (rev 57983)
@@ -51,6 +51,22 @@
 
 #include "BKE_deform.h"  /* own include */
 
+bDeformGroup *BKE_defgroup_new(Object *ob, const char *name)
+{
+	bDeformGroup *defgroup;
+
+	BLI_assert(OB_TYPE_SUPPORT_VGROUP(ob->type));
+
+	defgroup = MEM_callocN(sizeof(bDeformGroup), __func__);
+
+	BLI_strncpy(defgroup->name, name, sizeof(defgroup->name));
+
+	BLI_addtail(&ob->defbase, defgroup);
+	defgroup_unique_name(defgroup, ob);
+
+	return defgroup;
+}
+
 void defgroup_copy_list(ListBase *outbase, ListBase *inbase)
 {
 	bDeformGroup *defgroup, *defgroupn;

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2013-07-04 02:39:58 UTC (rev 57982)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2013-07-04 03:56:18 UTC (rev 57983)
@@ -125,14 +125,9 @@
 
 	if (!ob || !OB_TYPE_SUPPORT_VGROUP(ob->type))
 		return NULL;
-	
-	defgroup = MEM_callocN(sizeof(bDeformGroup), "add deformGroup");
 
-	BLI_strncpy(defgroup->name, name, sizeof(defgroup->name));
+	defgroup = BKE_defgroup_new(ob, name);
 
-	BLI_addtail(&ob->defbase, defgroup);
-	defgroup_unique_name(defgroup, ob);
-
 	ob->actdef = BLI_countlist(&ob->defbase);
 
 	return defgroup;
@@ -756,13 +751,10 @@
 	const int use_vert_sel = vertex_group_use_vert_sel(ob_dst);
 
 	/* Ensure vertex group on target.*/
-	if (!defgroup_find_name(ob_dst, dg_src->name)) {
-		ED_vgroup_add_name(ob_dst, dg_src->name);
+	if ((dg_dst = defgroup_find_name(ob_dst, dg_src->name)) == NULL) {
+		dg_dst = BKE_defgroup_new(ob_dst, dg_src->name);
 	}
 
-	/* Get destination deformgroup.*/
-	dg_dst = defgroup_find_name(ob_dst, dg_src->name);
-
 	/* Get meshes.*/
 	dmesh_src = mesh_get_derived_deform(scene, ob_src, CD_MASK_BAREMESH);
 	me_dst = ob_dst->data;
@@ -3811,7 +3803,6 @@
 		/* Event notifiers for correct display of data.*/
 		DAG_id_tag_update(&ob_act->id, OB_RECALC_DATA);
 		WM_event_add_notifier(C, NC_GEOM | ND_VERTEX_GROUP, ob_act);
-
 		return OPERATOR_FINISHED;
 	}
 	else {

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2013-07-04 02:39:58 UTC (rev 57982)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2013-07-04 03:56:18 UTC (rev 57983)
@@ -380,11 +380,9 @@
 		flip_side_name(name, defgroup->name, FALSE);
 		mirrdef = defgroup_name_index(ob, name);
 		if (mirrdef == -1) {
-			int olddef = ob->actdef;  /* tsk, ED_vgroup_add sets the active defgroup */
-			if (ED_vgroup_add_name(ob, name)) {
+			if (BKE_defgroup_new(ob, name)) {
 				mirrdef = BLI_countlist(&ob->defbase) - 1;
 			}
-			ob->actdef = olddef;
 		}
 
 		/* curdef should never be NULL unless this is




More information about the Bf-blender-cvs mailing list