Revision: 37972
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37972
Author:   campbellbarton
Date:     2011-06-30 02:52:13 +0000 (Thu, 30 Jun 2011)
Log Message:
-----------
minor change in logic for adding a new hook, ignore zero weight verts in a 
vgroup.

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

Modified: trunk/blender/source/blender/editors/object/object_hook.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_hook.c   2011-06-30 
02:32:47 UTC (rev 37971)
+++ trunk/blender/source/blender/editors/object/object_hook.c   2011-06-30 
02:52:13 UTC (rev 37972)
@@ -85,7 +85,7 @@
        *indexar= index= MEM_mallocN(4*totvert, "hook indexar");
        *tot= totvert;
        nr= 0;
-       cent[0]= cent[1]= cent[2]= 0.0;
+       zero_v3(cent);
        
        for(eve= em->verts.first; eve; eve= eve->next) {
                if(eve->f & SELECT) {
@@ -102,30 +102,29 @@
 
 static int return_editmesh_vgroup(Object *obedit, EditMesh *em, char *name, 
float *cent)
 {
-       MDeformVert *dvert;
-       EditVert *eve;
-       int i, totvert=0;
-       
-       cent[0]= cent[1]= cent[2]= 0.0;
-       
+       zero_v3(cent);
+
        if(obedit->actdef) {
-               
+               const int defgrp_index= obedit->actdef-1;
+               int i, totvert=0;
+
+               MDeformVert *dvert;
+               EditVert *eve;
+
                /* find the vertices */
                for(eve= em->verts.first; eve; eve= eve->next) {
                        dvert= CustomData_em_get(&em->vdata, eve->data, 
CD_MDEFORMVERT);
 
                        if(dvert) {
-                               for(i=0; i<dvert->totweight; i++){
-                                       if(dvert->dw[i].def_nr == 
(obedit->actdef-1)) {
-                                               totvert++;
-                                               add_v3_v3(cent, eve->co);
-                                       }
+                               if(defvert_find_weight(dvert, defgrp_index) > 
0.0f) {
+                                       add_v3_v3(cent, eve->co);
+                                       totvert++;
                                }
                        }
                }
                if(totvert) {
-                       bDeformGroup *defGroup = BLI_findlink(&obedit->defbase, 
obedit->actdef-1);
-                       strcpy(name, defGroup->name);
+                       bDeformGroup *dg = BLI_findlink(&obedit->defbase, 
defgrp_index);
+                       BLI_strncpy(name, dg->name, sizeof(dg->name));
                        mul_v3_fl(cent, 1.0f/(float)totvert);
                        return 1;
                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to