[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