Revision: 48599
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48599
Author:   cyborgmuppet
Date:     2012-07-04 16:30:12 +0000 (Wed, 04 Jul 2012)
Log Message:
-----------
response to code review:
http://codereview.appspot.com/6301100/diff/1/source/blender/editors/object/object_vgroup.c

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

Modified: 
branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c    
2012-07-04 16:19:54 UTC (rev 48598)
+++ branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c    
2012-07-04 16:30:12 UTC (rev 48599)
@@ -375,68 +375,72 @@
        return 1;
 }
 
-/***********************Start transfer weight*********************************/
+/***********************Start weight transfer 
(WT)*********************************/
 
-typedef enum VertexGroupMode {
-       REPLACE_ACTIVE_VERTEX_GROUP = 1,
-       REPLACE_ALL_VERTEX_GROUPS = 2
-} VertexGroupMode;
+typedef enum WT_VertexGroupMode {
+       WT_REPLACE_ACTIVE_VERTEX_GROUP = 1,
+       WT_REPLACE_ALL_VERTEX_GROUPS = 2
+} WT_VertexGroupMode;
 
-typedef enum Method {
-       BY_INDEX = 1,
-       BY_NEAREST_VERTEX = 2,
-       BY_NEAREST_FACE = 3,
-       BY_NEAREST_VERTEX_IN_FACE = 4
-} Method;
+typedef enum WT_Method {
+       WT_BY_INDEX = 1,
+       WT_BY_NEAREST_VERTEX = 2,
+       WT_BY_NEAREST_FACE = 3,
+       WT_BY_NEAREST_VERTEX_IN_FACE = 4
+} WT_Method;
 
-typedef enum ReplaceMode {
-       REPLACE_ALL_WEIGHTS = 1,
-       REPLACE_EMPTY_WEIGHTS = 2,
-       REPLACE_SELECTED_WEIGHTS = 3
-} ReplaceMode;
+typedef enum WT_ReplaceMode {
+       WT_REPLACE_ALL_WEIGHTS = 1,
+       WT_REPLACE_EMPTY_WEIGHTS = 2,
+       WT_REPLACE_SELECTED_WEIGHTS = 3
+} WT_ReplaceMode;
 
-static EnumPropertyItem vertex_group_mode_item[] = {
-    {REPLACE_ACTIVE_VERTEX_GROUP, "REPLACE_ACTIVE_VERTEX_GROUP", 1, "Active", 
"Transfer active vertex group from selected to active mesh."},
-    {REPLACE_ALL_VERTEX_GROUPS, "REPLACE_ALL_VERTEX_GROUPS", 1, "All", 
"Transfer all vertex groups from selected to active mesh."},
+static EnumPropertyItem WT_vertex_group_mode_item[] = {
+    {WT_REPLACE_ACTIVE_VERTEX_GROUP, "WT_REPLACE_ACTIVE_VERTEX_GROUP", 1, 
"Active", "Transfer active vertex group from selected to active mesh."},
+    {WT_REPLACE_ALL_VERTEX_GROUPS, "WT_REPLACE_ALL_VERTEX_GROUPS", 1, "All", 
"Transfer all vertex groups from selected to active mesh."},
     {0, NULL, 0, NULL, NULL}
 };
 
-static EnumPropertyItem method_item[] = {
-    {BY_INDEX, "BY_INDEX", 1, "Vertex index", "Copy for identical meshes."},
-    {BY_NEAREST_VERTEX, "BY_NEAREST_VERTEX", 1, "Nearest vertex", "Copy weight 
from closest vertex."},
-    {BY_NEAREST_FACE, "BY_NEAREST_FACE", 1, "Nearest face", "Barycentric 
interpolation from nearest face."},
-    {BY_NEAREST_VERTEX_IN_FACE, "BY_NEAREST_VERTEX_IN_FACE", 1, "Nearest 
vertex in face", "Copy weight from closest vertex in nearest face."},
+static EnumPropertyItem WT_method_item[] = {
+    {WT_BY_INDEX, "WT_BY_INDEX", 1, "Vertex index", "Copy for identical 
meshes."},
+    {WT_BY_NEAREST_VERTEX, "WT_BY_NEAREST_VERTEX", 1, "Nearest vertex", "Copy 
weight from closest vertex."},
+    {WT_BY_NEAREST_FACE, "WT_BY_NEAREST_FACE", 1, "Nearest face", "Barycentric 
interpolation from nearest face."},
+    {WT_BY_NEAREST_VERTEX_IN_FACE, "WT_BY_NEAREST_VERTEX_IN_FACE", 1, "Nearest 
vertex in face", "Copy weight from closest vertex in nearest face."},
     {0, NULL, 0, NULL, NULL}
 };
 
-static EnumPropertyItem replace_mode_item[] = {
-    {REPLACE_ALL_WEIGHTS, "REPLACE_ALL_WEIGHTS", 1, "All", "Overwrites all 
weights."},
-    {REPLACE_EMPTY_WEIGHTS, "REPLACE_EMPTY_WEIGHTS", 1, "Empty", "Adds weights 
to vertices with no weight."},
-    {REPLACE_SELECTED_WEIGHTS, "REPLACE_SELECTED_WEIGHTS", 1, "Selected", 
"Replace selected weights."},
+static EnumPropertyItem WT_replace_mode_item[] = {
+    {WT_REPLACE_ALL_WEIGHTS, "WT_REPLACE_ALL_WEIGHTS", 1, "All", "Overwrites 
all weights."},
+    {WT_REPLACE_EMPTY_WEIGHTS, "WT_REPLACE_EMPTY_WEIGHTS", 1, "Empty", "Adds 
weights to vertices with no weight."},
+    {WT_REPLACE_SELECTED_WEIGHTS, "WT_REPLACE_SELECTED_WEIGHTS", 1, 
"Selected", "Replace selected weights."},
     {0, NULL, 0, NULL, NULL}
 };
 
 /*copy weight*/
-void vgroup_transfer_weight(MVert *mv_dst, float *weight_dst, float 
weight_src, ReplaceMode replace_mode)
+void vgroup_transfer_weight(MVert *mv_dst, float *weight_dst, float 
weight_src, WT_ReplaceMode replace_mode)
 {
        switch (replace_mode) {
 
-               case REPLACE_ALL_WEIGHTS:
+               case WT_REPLACE_ALL_WEIGHTS:
                        *weight_dst = weight_src;
                        break;
 
-               case REPLACE_EMPTY_WEIGHTS:
+               case WT_REPLACE_EMPTY_WEIGHTS:
                        if (*weight_dst == 0) *weight_dst = weight_src;
                        break;
 
-               case REPLACE_SELECTED_WEIGHTS:
+               case WT_REPLACE_SELECTED_WEIGHTS:
                        if (mv_dst->flag & SELECT) *weight_dst = weight_src;
                        break;
+
+               default:
+                       BLI_assert(0);
+                       break;
        }
 }
 
 int ED_vgroup_transfer_weight(Object *ob_dst, Object *ob_src, bDeformGroup 
*dg_src, Scene *scene,
-                              Method method, ReplaceMode replace_mode, 
wmOperator *op)
+                              WT_Method method, WT_ReplaceMode replace_mode, 
wmOperator *op)
 {
        bDeformGroup *dg_dst;
        Mesh *me_dst, *me_src;
@@ -452,7 +456,7 @@
        float weight, tmp_weight[4], tmp_co[3], normal[3], tmp_mat[4][4], 
dist_v1, dist_v2, dist_v3, dist_v4;
 
        /* create new and overwrite vertex group on destination without data */
-       if (!defgroup_find_name(ob_dst, dg_src->name) || replace_mode == 
REPLACE_ALL_WEIGHTS) {
+       if (!defgroup_find_name(ob_dst, dg_src->name) || replace_mode == 
WT_REPLACE_ALL_WEIGHTS) {
                ED_vgroup_delete(ob_dst, defgroup_find_name(ob_dst, 
dg_src->name));
                ED_vgroup_add_name(ob_dst, dg_src->name);
        }
@@ -491,7 +495,7 @@
        mult_m4_m4m4(tmp_mat, ob_src->imat, ob_dst->obmat);
 
        /* clear weights */
-       if (replace_mode == REPLACE_ALL_WEIGHTS) {
+       if (replace_mode == WT_REPLACE_ALL_WEIGHTS) {
                for(i = 0, dv_dst = dv_array_dst; i < me_dst->totvert; i++, 
dv_dst++) {
                        dw_dst = defvert_verify_index(*dv_dst, index_dst);
                        if (dw_dst) (*dw_dst).weight = 0;
@@ -500,7 +504,7 @@
 
        switch (method) {
 
-               case BY_INDEX:
+               case WT_BY_INDEX:
                        /* check if indices are matching, delete and return if 
not */
                        if (ob_dst == ob_src || dv_tot_dst == 0 || dv_tot_dst 
!= dv_tot_src ||
                            dv_array_src == NULL || dv_array_dst == NULL)
@@ -525,7 +529,7 @@
                        }
                        break;
 
-               case BY_NEAREST_VERTEX:
+               case WT_BY_NEAREST_VERTEX:
                        /* make node tree */
                        bvhtree_from_mesh_verts(&tree_mesh_vertices_src, 
dmesh_src, FLT_EPSILON, 2, 6);
 
@@ -544,7 +548,7 @@
                                
BLI_bvhtree_find_nearest(tree_mesh_vertices_src.tree, tmp_co,
                                                         &nearest, 
tree_mesh_vertices_src.nearest_callback, &tree_mesh_vertices_src);
 
-                               /* copy weight */
+                               /* copy weight that are not NULL including 
weight value 0. Existing target weights are overwritten prior to this in 
relevant cases. */
                                dw_src = 
defvert_find_index(dv_array_src[nearest.index], index_src);
                                if(dw_src && dw_src->weight) {
                                        dw_dst = defvert_verify_index(*dv_dst, 
index_dst);
@@ -556,7 +560,7 @@
                        free_bvhtree_from_mesh(&tree_mesh_vertices_src);
                        break;
 
-               case BY_NEAREST_FACE:
+               case WT_BY_NEAREST_FACE:
                        /* get faces */
                        DM_ensure_tessface(dmesh_src);
                        mface_src = dmesh_src->getTessFaceArray(dmesh_src);
@@ -601,7 +605,7 @@
                                        weight += tmp_weight[f_index] * 
defvert_find_weight(dv_array_src[v_index], index_src);
                                } while (f_index--);
 
-                               /* copy weight */
+                               /* copy weight that are not NULL including 
weight value 0. Existing target weights are overwritten prior to this in 
relevant cases. */
                                if(weight > 0) {
                                        dw_dst = defvert_verify_index(*dv_dst, 
index_dst);
                                        vgroup_transfer_weight(mv_dst, 
&dw_dst->weight, weight, replace_mode);
@@ -612,7 +616,7 @@
                        free_bvhtree_from_mesh(&tree_mesh_faces_src);
                        break;
 
-               case BY_NEAREST_VERTEX_IN_FACE:
+               case WT_BY_NEAREST_VERTEX_IN_FACE:
                        /* get faces */
                        DM_ensure_tessface(dmesh_src);
                        mface_src = dmesh_src->getTessFaceArray(dmesh_src);
@@ -654,7 +658,7 @@
                                        }
                                }
 
-                               /* copy weight */
+                               /* copy weight that are not NULL including 
weight value 0. Existing target weights are overwritten prior to this in 
relevant cases. */
                                dw_src = 
defvert_find_index(dv_array_src[index_nearest_vertex], index_src);
                                if(dw_src && dw_src->weight) {
                                        dw_dst = defvert_verify_index(*dv_dst, 
index_dst);
@@ -665,6 +669,10 @@
                        /* free memory */
                        free_bvhtree_from_mesh(&tree_mesh_faces_src);
                        break;
+
+               default:
+                       BLI_assert(0);
+                       break;
        }
 
        /*free memory*/
@@ -675,7 +683,7 @@
        return 1;
 }
 
-/***********************End transfer weight***********************************/
+/***********************End weight transfer 
(WT)***********************************/
 
 /* for Mesh in Object mode */
 /* allows editmode for Lattice */
@@ -3065,9 +3073,9 @@
        bDeformGroup *dg_src;
        int fail = 0;
 
-       VertexGroupMode vertex_group_mode = RNA_enum_get(op->ptr, 
"vertex_group_mode");
-       Method method = RNA_enum_get(op->ptr, "method");
-       ReplaceMode replace_mode = RNA_enum_get(op->ptr, "replace_mode");
+       WT_VertexGroupMode vertex_group_mode = RNA_enum_get(op->ptr, 
"WT_vertex_group_mode");
+       WT_Method method = RNA_enum_get(op->ptr, "WT_method");
+       WT_ReplaceMode replace_mode = RNA_enum_get(op->ptr, "WT_replace_mode");
 
        /* Macro to loop through selected objects and perform operation 
depending on function, option and method */
        CTX_DATA_BEGIN (C, Object *, ob_slc, selected_editable_objects)
@@ -3076,17 +3084,21 @@
                if (ob_act != ob_slc && ob_slc->defbase.first) {
                        switch (vertex_group_mode) {
 
-                               case REPLACE_ACTIVE_VERTEX_GROUP:
+                               case WT_REPLACE_ACTIVE_VERTEX_GROUP:
                                        if (!ED_vgroup_transfer_weight(
                                                ob_act, ob_slc, 
BLI_findlink(&ob_slc->defbase, ob_slc->actdef - 1), scene, method, 
replace_mode, op)) fail++;
                                        break;
 
-                               case REPLACE_ALL_VERTEX_GROUPS:
+                               case WT_REPLACE_ALL_VERTEX_GROUPS:
                                        for (dg_src = ob_slc->defbase.first; 
dg_src; dg_src = dg_src->next) {
                                                if (!ED_vgroup_transfer_weight(
                                                        ob_act, ob_slc, dg_src, 
scene, method, replace_mode, op)) fail++;
                                        }
                                        break;
+
+                               default:
+                                       BLI_assert(0);
+                                       break;
                        }
                }
        }
@@ -3118,9 +3130,9 @@
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
        /* properties */
-       ot->prop = RNA_def_enum(ot->srna, "vertex_group_mode", 
vertex_group_mode_item, 1, "Group", "");
-       ot->prop = RNA_def_enum(ot->srna, "method", method_item, 3, "Method", 
"");
-       ot->prop = RNA_def_enum(ot->srna, "replace_mode", replace_mode_item, 1, 
"Replace", "");
+       ot->prop = RNA_def_enum(ot->srna, "WT_vertex_group_mode", 
WT_vertex_group_mode_item, 1, "Group", "");

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to