[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27000] trunk/blender/source/blender/ editors/object/object_vgroup.c: [#21207] bpy.ops.object.vertex_group_sort() sorts group names, but not group data

Campbell Barton ideasman42 at gmail.com
Wed Feb 17 23:26:50 CET 2010


Revision: 27000
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27000
Author:   campbellbarton
Date:     2010-02-17 23:26:50 +0100 (Wed, 17 Feb 2010)

Log Message:
-----------
[#21207] bpy.ops.object.vertex_group_sort() sorts group names, but not group data
support for vertex group sorting in editmode

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	2010-02-17 21:58:08 UTC (rev 26999)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2010-02-17 22:26:50 UTC (rev 27000)
@@ -59,6 +59,7 @@
 #include "BKE_mesh.h"
 #include "BKE_paint.h"
 #include "BKE_utildefines.h"
+#include "BKE_report.h"
 
 #include "RNA_access.h"
 #include "RNA_define.h"
@@ -1952,11 +1953,31 @@
 		name += DEF_GROUP_SIZE;
 	}
 
-	ED_vgroup_give_array(ob->data, &dvert, &dvert_tot);
-	while(dvert && dvert_tot--) {
-		defvert_remap(dvert, sort_map);
-		dvert++;
+	if(ob->mode == OB_MODE_EDIT) {
+		if(ob->type==OB_MESH) {
+			EditMesh *em = BKE_mesh_get_editmesh(ob->data);
+			EditVert *eve;
+
+			for(eve=em->verts.first; eve; eve=eve->next){
+				dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT);
+				if(dvert && dvert->totweight){
+					defvert_remap(dvert, sort_map);
+				}
+			}
+		}
+		else {
+			BKE_report(op->reports, RPT_ERROR, "Editmode lattice isnt supported yet.");
+			return OPERATOR_CANCELLED;
+		}
 	}
+	else {
+		ED_vgroup_give_array(ob->data, &dvert, &dvert_tot);
+		while(dvert && dvert_tot--) {
+			if(dvert->totweight)
+				defvert_remap(dvert, sort_map);
+			dvert++;
+		}
+	}
 
 	/* update users */
 	for(i=0; i<def_tot; i++)
@@ -1966,6 +1987,8 @@
 
 	vgroup_remap_update_users(ob, sort_map_update);
 
+	ob->actdef= sort_map_update[ob->actdef];
+
 	MEM_freeN(name_array);
 	MEM_freeN(sort_map_update);
 





More information about the Bf-blender-cvs mailing list