rename vertex group mix "vgroup, vgroup2" to "vgroup_a, vgroup_b"
authorCampbell Barton <ideasman42@gmail.com>
Mon, 5 Sep 2011 04:53:23 +0000 (04:53 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 5 Sep 2011 04:53:23 +0000 (04:53 +0000)
also clamp more values between 0.0 and 1.0

release/scripts/startup/bl_ui/properties_data_modifier.py
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesrna/intern/rna_modifier.c
source/blender/modifiers/intern/MOD_weightvgmix.c

index 4e1056549a72c6425652e90a0dff0e975a534a7f..a7e87c6ab623f9d075d8b87ce4acda2b5959d482 100644 (file)
@@ -822,19 +822,19 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
         if ob.type == 'MESH':
             split = layout.split()
             col = split.column()
-            col.label(text="Vertex Group 1:")
-            col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
-            col.label(text="Default Weight 1:")
-            col.prop(md, "default_weight", text="")
+            col.label(text="Vertex Group A:")
+            col.prop_search(md, "vertex_group_a", ob, "vertex_groups", text="")
+            col.label(text="Default Weight A:")
+            col.prop(md, "default_weight_a", text="")
 
             col.label(text="Mix Mode:")
             col.prop(md, "mix_mode", text="")
 
             col = split.column()
-            col.label(text="Vertex Group 2:")
-            col.prop_search(md, "vertex_group2", ob, "vertex_groups", text="")
-            col.label(text="Default Weight 2:")
-            col.prop(md, "default_weight2", text="")
+            col.label(text="Vertex Group B:")
+            col.prop_search(md, "vertex_group_b", ob, "vertex_groups", text="")
+            col.label(text="Default Weight B:")
+            col.prop(md, "default_weight_b", text="")
 
             col.label(text="Mix Set:")
             col.prop(md, "mix_set", text="")
index d3c3ba2f93b3bf6ce21dde7feb04cd6f497c9236..1714ae2a0184a866e4174ae369681827155bfbf7 100644 (file)
@@ -841,10 +841,10 @@ typedef struct WeightVGMixModifierData {
        /* XXX Note: I tried to keep everything logically ordered – provided the
         *           alignment constraints... */
 
-       char    defgrp_name[32];      /* Name of vertex group to modify/weight. */
-       char    defgrp_name2[32];     /* Name of other vertex group to mix in. */
-       float   default_weight;       /* Default weight value for first vgroup. */
-       float   default_weight2;      /* Default weight value to mix in. */
+       char    defgrp_name_a[32];      /* Name of vertex group to modify/weight. */
+       char    defgrp_name_b[32];     /* Name of other vertex group to mix in. */
+       float   default_weight_a;       /* Default weight value for first vgroup. */
+       float   default_weight_b;      /* Default weight value to mix in. */
        char    mix_mode;             /* How second vgroups weights affect first ones */
        char    mix_set;              /* What vertices to affect. */
 
@@ -876,10 +876,10 @@ typedef struct WeightVGMixModifierData {
 
 /* What vertices to affect. */
 #define MOD_WVG_SET_ALL                        1 /* Affect all vertices. */
-#define MOD_WVG_SET_ORG                        2 /* Affect only vertices in first vgroup. */
-#define MOD_WVG_SET_NEW                        3 /* Affect only vertices in second vgroup. */
-#define MOD_WVG_SET_UNION              4 /* Affect only vertices in one vgroup or the other. */
-#define MOD_WVG_SET_INTER              5 /* Affect only vertices in both vgroups. */
+#define MOD_WVG_SET_A                  2 /* Affect only vertices in first vgroup. */
+#define MOD_WVG_SET_B                  3 /* Affect only vertices in second vgroup. */
+#define MOD_WVG_SET_OR                 4 /* Affect only vertices in one vgroup or the other. */
+#define MOD_WVG_SET_AND                        5 /* Affect only vertices in both vgroups. */
 
 typedef struct WeightVGProximityModifierData {
        ModifierData modifier;
index a071284467bc7b717cb60d60581f93a33d8d59b2..169288cfed3b6ce3f309853342e809f813d91a02 100644 (file)
@@ -394,7 +394,7 @@ static void rna_WeightVGModifier_vgroup_set(PointerRNA *ptr, const char *value)
        }
        else if (md->type == eModifierType_WeightVGMix) {
                WeightVGMixModifierData *wmd= (WeightVGMixModifierData*)md;
-               rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name, sizeof(wmd->defgrp_name));
+               rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name_a, sizeof(wmd->defgrp_name_a));
        }
        else if (md->type == eModifierType_WeightVGProximity) {
                WeightVGProximityModifierData *wmd= (WeightVGProximityModifierData*)md;
@@ -422,7 +422,7 @@ static void rna_WeightVGModifier_mask_vgroup_set(PointerRNA *ptr, const char *va
 static void rna_WeightVGMixModifier_vgroup2_set(PointerRNA *ptr, const char *value)
 {
        WeightVGMixModifierData *wmd= (WeightVGMixModifierData*)ptr->data;
-       rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name2, sizeof(wmd->defgrp_name2));
+       rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name_b, sizeof(wmd->defgrp_name_b));
 }
 
 static void rna_MappingInfo_uvlayer_set(PointerRNA *ptr, const char *value)
@@ -2510,7 +2510,7 @@ static void rna_def_modifier_weightvg_mask(BlenderRNA *brna, StructRNA *srna)
 
        prop= RNA_def_property(srna, "mask_constant", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
+       RNA_def_property_ui_range(prop, -1.0, 1.0, 10, 0);
        RNA_def_property_ui_text(prop, "Influence", "Global influence of current modifications on vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
@@ -2600,8 +2600,8 @@ static void rna_def_modifier_weightvgedit(BlenderRNA *brna)
 /*     RNA_def_property_update(prop, 0, "rna_Modifier_update");*/
 
        prop= RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
+       RNA_def_property_range(prop, 0.0, 1.0f);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
        RNA_def_property_ui_text(prop, "Default Weight", "Default weight a vertex will have if "
                                                         "it is not in the vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -2641,16 +2641,16 @@ static void rna_def_modifier_weightvgedit(BlenderRNA *brna)
 
        prop= RNA_def_property(srna, "add_threshold", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "add_threshold");
-       RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
+       RNA_def_property_range(prop, 0.0, 1.0);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
        RNA_def_property_ui_text(prop, "Add Threshold", "Lower bound for a vertex's weight "
                                                        "to be added to the vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
        prop= RNA_def_property(srna, "remove_threshold", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "rem_threshold");
-       RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
+       RNA_def_property_range(prop, 0.0, 1.0);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
        RNA_def_property_ui_text(prop, "Rem Threshold", "Upper bound for a vertex's weight "
                                                        "to be removed from the vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -2685,10 +2685,10 @@ static void rna_def_modifier_weightvgmix(BlenderRNA *brna)
 
        static EnumPropertyItem weightvg_mix_set_items[] = {
                {MOD_WVG_SET_ALL,   "ALL",   0, "All vertices", ""},
-               {MOD_WVG_SET_ORG,   "ORG",   0, "Vertices from vgroup 1", ""},
-               {MOD_WVG_SET_NEW,   "NEW",   0, "Vertices from vgroup 2", ""},
-               {MOD_WVG_SET_UNION, "UNION", 0, "Vertices from one group", ""},
-               {MOD_WVG_SET_INTER, "INTER", 0, "Vertices from both groups", ""},
+               {MOD_WVG_SET_A,     "A",   0, "Vertices from group A", ""},
+               {MOD_WVG_SET_B,     "B",   0, "Vertices from group B", ""},
+               {MOD_WVG_SET_OR,    "OR", 0, "Vertices from one group", ""},
+               {MOD_WVG_SET_AND,   "AND", 0, "Vertices from both groups", ""},
                {0, NULL, 0, NULL, NULL}};
 
        StructRNA *srna;
@@ -2700,29 +2700,29 @@ static void rna_def_modifier_weightvgmix(BlenderRNA *brna)
        RNA_def_struct_sdna(srna, "WeightVGMixModifierData");
        RNA_def_struct_ui_icon(srna, ICON_MOD_WEIGHTVG);
 
-       prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
-       RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
-       RNA_def_property_ui_text(prop, "Vertex Group", "First vertex group name.");
+       prop= RNA_def_property(srna, "vertex_group_a", PROP_STRING, PROP_NONE);
+       RNA_def_property_string_sdna(prop, NULL, "defgrp_name_a");
+       RNA_def_property_ui_text(prop, "Vertex Group A", "First vertex group name.");
        RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_vgroup_set");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       prop= RNA_def_property(srna, "vertex_group2", PROP_STRING, PROP_NONE);
-       RNA_def_property_string_sdna(prop, NULL, "defgrp_name2");
-       RNA_def_property_ui_text(prop, "Vertex Group 2", "Second vertex group name.");
+       prop= RNA_def_property(srna, "vertex_group_b", PROP_STRING, PROP_NONE);
+       RNA_def_property_string_sdna(prop, NULL, "defgrp_name_b");
+       RNA_def_property_ui_text(prop, "Vertex Group B", "Second vertex group name.");
        RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGMixModifier_vgroup2_set");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       prop= RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
-       RNA_def_property_ui_text(prop, "Default Weight", "Default weight a vertex will have if "
+       prop= RNA_def_property(srna, "default_weight_a", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, 0.0, 1.0f);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
+       RNA_def_property_ui_text(prop, "Default Weight A", "Default weight a vertex will have if "
                                                         "it is not in the first vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       prop= RNA_def_property(srna, "default_weight2", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_range(prop, -100000.0, 100000.0, 10, 0);
-       RNA_def_property_ui_text(prop, "Default Weight 2", "Default weight a vertex will have if "
+       prop= RNA_def_property(srna, "default_weight_b", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, 0.0, 1.0f);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
+       RNA_def_property_ui_text(prop, "Default Weight B", "Default weight a vertex will have if "
                                                           "it is not in the second vgroup.");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
index a26a3d1e7f4d2189abd08513f64ab1572e499aea..ad70e8ab55c14fa59b85bc30f43c77275e2208a4 100644 (file)
@@ -118,10 +118,10 @@ static void initData(ModifierData *md)
 {
        WeightVGMixModifierData *wmd = (WeightVGMixModifierData*) md;
 
-       wmd->default_weight         = 0.0;
-       wmd->default_weight2        = 0.0;
+       wmd->default_weight_a       = 0.0f;
+       wmd->default_weight_b       = 0.0f;
        wmd->mix_mode               = MOD_WVG_MIX_SET;
-       wmd->mix_set                = MOD_WVG_SET_INTER;
+       wmd->mix_set                = MOD_WVG_SET_AND;
 
        wmd->mask_constant          = 1.0f;
        wmd->mask_tex_use_channel   = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
@@ -133,10 +133,10 @@ static void copyData(ModifierData *md, ModifierData *target)
        WeightVGMixModifierData *wmd  = (WeightVGMixModifierData*) md;
        WeightVGMixModifierData *twmd = (WeightVGMixModifierData*) target;
 
-       BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
-       BLI_strncpy(twmd->defgrp_name2, wmd->defgrp_name2, sizeof(twmd->defgrp_name2));
-       twmd->default_weight         = wmd->default_weight;
-       twmd->default_weight2        = wmd->default_weight2;
+       BLI_strncpy(twmd->defgrp_name_a, wmd->defgrp_name_a, sizeof(twmd->defgrp_name_a));
+       BLI_strncpy(twmd->defgrp_name_b, wmd->defgrp_name_b, sizeof(twmd->defgrp_name_b));
+       twmd->default_weight_a       = wmd->default_weight_a;
+       twmd->default_weight_b       = wmd->default_weight_b;
        twmd->mix_mode               = wmd->mix_mode;
        twmd->mix_set                = wmd->mix_set;
 
@@ -217,7 +217,7 @@ static int isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 {
        WeightVGMixModifierData *wmd = (WeightVGMixModifierData*) md;
        /* If no vertex group, bypass. */
-       return (wmd->defgrp_name == NULL);
+       return (wmd->defgrp_name_a == NULL);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData,
@@ -248,12 +248,12 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
                return dm;
 
        /* Get vgroup idx from its name. */
-       defgrp_idx = defgroup_name_index(ob, wmd->defgrp_name);
+       defgrp_idx = defgroup_name_index(ob, wmd->defgrp_name_a);
        if (defgrp_idx < 0)
                return dm;
        /* Get seconf vgroup idx from its name, if given. */
-       if (wmd->defgrp_name2[0] != (char)0) {
-               defgrp_idx2 = defgroup_name_index(ob, wmd->defgrp_name2);
+       if (wmd->defgrp_name_b[0] != (char)0) {
+               defgrp_idx2 = defgroup_name_index(ob, wmd->defgrp_name_b);
                if (defgrp_idx2 < 0)
                        return dm;
        }
@@ -305,7 +305,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
        /* Find out which vertices to work on. */
        tidx = MEM_mallocN(sizeof(int) * numVerts, "WeightVGMix Modifier, tidx");
        switch (wmd->mix_set) {
-       case MOD_WVG_SET_ORG:
+       case MOD_WVG_SET_A:
                /* All vertices in first vgroup. */
                for (i = 0; i < numVerts; i++) {
                        for (j = 0; j < dvert[i].totweight; j++) {
@@ -316,7 +316,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
                        }
                }
                break;
-       case MOD_WVG_SET_NEW:
+       case MOD_WVG_SET_B:
                /* All vertices in second vgroup. */
                for (i = 0; i < numVerts; i++) {
                        for (j = 0; j < dvert[i].totweight; j++) {
@@ -327,7 +327,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
                        }
                }
                break;
-       case MOD_WVG_SET_UNION:
+       case MOD_WVG_SET_OR:
                /* All vertices in one vgroup or the other. */
                for (i = 0; i < numVerts; i++) {
                        for (j = 0; j < dvert[i].totweight; j++) {
@@ -338,27 +338,29 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
                        }
                }
                break;
-       case MOD_WVG_SET_INTER:
+       case MOD_WVG_SET_AND:
                /* All vertices in both vgroups. */
                for (i = 0; i < numVerts; i++) {
-                       char idx1 = 0;
-                       char idx2 = 0;
+                       int idx1 = FALSE;
+                       int idx2 = FALSE;
                        for (j = 0; j < dvert[i].totweight; j++) {
                                if(dvert[i].dw[j].def_nr == defgrp_idx) {
-                                       if (idx2) {
+                                       if (idx2 == TRUE) {
                                                tidx[numIdx++] = i;
                                                break;
                                        }
-                                       else
-                                               idx1 = 1;
+                                       else {
+                                               idx1 = TRUE;
+                                       }
                                }
                                else if(dvert[i].dw[j].def_nr == defgrp_idx2) {
-                                       if (idx1) {
+                                       if (idx1 == TRUE) {
                                                tidx[numIdx++] = i;
                                                break;
                                        }
-                                       else
-                                               idx2 = 1;
+                                       else {
+                                               idx2 = TRUE;
+                                       }
                                }
                        }
                }
@@ -382,27 +384,27 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
        /* Mix weights. */
        for (i = 0; i < numIdx; i++) {
                float weight2 = 0.0;
-               char w1 = 0;
-               char w2 = 0;
+               int w1 = FALSE;
+               int w2 = FALSE;
                int idx = indices ? indices[i] : i;
                for (j = 0; j < dvert[idx].totweight; j++) {
                        if(dvert[idx].dw[j].def_nr == defgrp_idx) {
                                org_w[i] = dvert[idx].dw[j].weight;
-                               w1 = 1;
-                               if (w2)
+                               w1 = TRUE;
+                               if (w2 == TRUE)
                                        break;
                        }
                        else if(dvert[idx].dw[j].def_nr == defgrp_idx2) {
                                weight2 = dvert[idx].dw[j].weight;
-                               w2 = 1;
-                               if (w1)
+                               w2 = TRUE;
+                               if (w1 == TRUE)
                                        break;
                        }
                }
-               if (w1 == 0)
-                       org_w[i] = wmd->default_weight;
-               if (w2 == 0)
-                       weight2 = wmd->default_weight2;
+               if (w1 == FALSE)
+                       org_w[i] = wmd->default_weight_a;
+               if (w2 == FALSE)
+                       weight2 = wmd->default_weight_b;
                new_w[i] = mix_weight(org_w[i], weight2, wmd->mix_mode);
        }