Revision: 42087
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42087
Author:   mont29
Date:     2011-11-23 14:40:15 +0000 (Wed, 23 Nov 2011)
Log Message:
-----------
Fixed some glitches with WeightVG modifiers:
* Added some RNA tooltips, now that they are supported by dropdown lists.
* Fixed some RNA num properties UI steps.
* Fixed a memory leak in Proximity modifier (when dm of "target" object had to 
be created, it wasn?\226?\128?\153t freed...).

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c
    trunk/blender/source/blender/modifiers/intern/MOD_weightvgproximity.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-11-23 
07:39:59 UTC (rev 42086)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-11-23 
14:40:15 UTC (rev 42087)
@@ -2571,10 +2571,10 @@
 static void rna_def_modifier_weightvg_mask(BlenderRNA *brna, StructRNA *srna)
 {
        static EnumPropertyItem weightvg_mask_tex_map_items[] = {
-               {MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", ""},
-               {MOD_DISP_MAP_GLOBAL, "GLOBAL", 0, "Global", ""},
-               {MOD_DISP_MAP_OBJECT, "OBJECT", 0, "Object", ""},
-               {MOD_DISP_MAP_UV, "UV", 0, "UV", ""},
+               {MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", "Use local generated 
coordinates"},
+               {MOD_DISP_MAP_GLOBAL, "GLOBAL", 0, "Global", "Use global 
coordinates"},
+               {MOD_DISP_MAP_OBJECT, "OBJECT", 0, "Object", "Use local 
generated coordinates of another object"},
+               {MOD_DISP_MAP_UV, "UV", 0, "UV", "Use coordinates from an UV 
layer"},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem weightvg_mask_tex_used_items[] = {
@@ -2592,7 +2592,7 @@
 
        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, 0.0, 1.0, 10, 0);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
        RNA_def_property_ui_text(prop, "Influence", "Global influence of 
current modifications on vgroup");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
@@ -2635,14 +2635,15 @@
 static void rna_def_modifier_weightvgedit(BlenderRNA *brna)
 {
        static EnumPropertyItem weightvg_edit_falloff_type_items[] = {
-               {MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", ""},
+               {MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", "Null 
action"},
                {MOD_WVG_MAPPING_CURVE, "CURVE", ICON_RNDCURVE, "Custom Curve", 
""},
                {MOD_WVG_MAPPING_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
                {MOD_WVG_MAPPING_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", 
""},
                {MOD_WVG_MAPPING_ROOT, "ROOT", ICON_ROOTCURVE, "Root", ""},
                {MOD_WVG_MAPPING_SPHERE, "ICON_SPHERECURVE", ICON_SPHERECURVE, 
"Sphere", ""},
                {MOD_WVG_MAPPING_RANDOM, "RANDOM", ICON_RNDCURVE, "Random", ""},
-               {MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE, "Median Step", 
""}, /* Would need a better icon... */
+               {MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE /* Would need a 
better icon... */, "Median Step",
+                                      "Map all values below 0.5 to 0.0, and 
all others to 1.0"},
                {0, NULL, 0, NULL, NULL}};
 
        StructRNA *srna;
@@ -2679,7 +2680,7 @@
 
        prop= RNA_def_property(srna, "default_weight", 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_range(prop, 0.0, 1.0, 1, 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");
@@ -2692,7 +2693,7 @@
        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, 0.0, 1.0);
-       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 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");
@@ -2700,7 +2701,7 @@
        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, 0.0, 1.0);
-       RNA_def_property_ui_range(prop, 0.0, 1.0, 10, 0);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 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");
@@ -2712,21 +2713,21 @@
 static void rna_def_modifier_weightvgmix(BlenderRNA *brna)
 {
        static EnumPropertyItem weightvg_mix_modes_items[] = {
-               {MOD_WVG_MIX_SET, "SET", 0, "Replace weights", ""},
-               {MOD_WVG_MIX_ADD, "ADD", 0, "Add to weights", ""},
-               {MOD_WVG_MIX_SUB, "SUB", 0, "Subtract from weights", ""},
-               {MOD_WVG_MIX_MUL, "MUL", 0, "Multiply weights", ""},
-               {MOD_WVG_MIX_DIV, "DIV", 0, "Divide weights", ""},
-               {MOD_WVG_MIX_DIF, "DIF", 0, "Difference", ""},
-               {MOD_WVG_MIX_AVG, "AVG", 0, "Average", ""},
+               {MOD_WVG_MIX_SET, "SET", 0, "Replace", "Replace VGroup A's 
weights by VGroup b's ones"},
+               {MOD_WVG_MIX_ADD, "ADD", 0, "Add", "Add VGroup B's weights to 
VGroup A's ones"},
+               {MOD_WVG_MIX_SUB, "SUB", 0, "Subtract", "Subtract VGroup B's 
weights from VGroup A's ones"},
+               {MOD_WVG_MIX_MUL, "MUL", 0, "Multiply", "Multiply VGroup A's 
weights by VGroup B's ones"},
+               {MOD_WVG_MIX_DIV, "DIV", 0, "Divide", "Divide VGroup A's 
weights by VGroup B's ones"},
+               {MOD_WVG_MIX_DIF, "DIF", 0, "Difference", "Difference between 
VGroup A's and VGroup B's weigths"},
+               {MOD_WVG_MIX_AVG, "AVG", 0, "Average", "Average value of VGroup 
A's and VGroup B's weigths"},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem weightvg_mix_set_items[] = {
-               {MOD_WVG_SET_ALL,   "ALL",   0, "All vertices", ""},
-               {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", ""},
+               {MOD_WVG_SET_ALL,   "ALL",   0, "All", "Affect all vertices 
(might add some to VGroup A)"},
+               {MOD_WVG_SET_A,     "A",   0, "VGroup A", "Affect vertices in 
VGroup A"},
+               {MOD_WVG_SET_B,     "B",   0, "VGroup B", "Affect vertices in 
VGroup B (might add some to VGroup A)"},
+               {MOD_WVG_SET_OR,    "OR", 0, "VGroup A or B", "Affect vertices 
in at least one of both VGroups (might add some to VGroup A)"},
+               {MOD_WVG_SET_AND,   "AND", 0, "VGroup A and B", "Affect 
vertices in both groups"},
                {0, NULL, 0, NULL, NULL}};
 
        StructRNA *srna;
@@ -2752,14 +2753,14 @@
 
        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_range(prop, 0.0, 1.0, 1, 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_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_range(prop, 0.0, 1.0, 1, 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");
@@ -2796,14 +2797,15 @@
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem weightvg_proximity_falloff_type_items[] = {
-               {MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", ""},
+               {MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", "Null 
action"},
                /* No curve mapping here! */
                {MOD_WVG_MAPPING_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
                {MOD_WVG_MAPPING_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", 
""},
                {MOD_WVG_MAPPING_ROOT, "ROOT", ICON_ROOTCURVE, "Root", ""},
                {MOD_WVG_MAPPING_SPHERE, "ICON_SPHERECURVE", ICON_SPHERECURVE, 
"Sphere", ""},
                {MOD_WVG_MAPPING_RANDOM, "RANDOM", ICON_RNDCURVE, "Random", ""},
-               {MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE, "Median Step", 
""}, /* Would need a better icon... */
+               {MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE /* Would need a 
better icon... */, "Median Step",
+                                      "Map all values below 0.5 to 0.0, and 
all others to 1.0"},
                {0, NULL, 0, NULL, NULL}};
 
        StructRNA *srna;

Modified: trunk/blender/source/blender/modifiers/intern/MOD_weightvgproximity.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_weightvgproximity.c       
2011-11-23 07:39:59 UTC (rev 42086)
+++ trunk/blender/source/blender/modifiers/intern/MOD_weightvgproximity.c       
2011-11-23 14:40:15 UTC (rev 42087)
@@ -466,6 +466,7 @@
 
                if (use_trgt_verts || use_trgt_edges || use_trgt_faces) {
                        DerivedMesh *target_dm = obr->derivedFinal;
+                       short free_target_dm = FALSE;
                        if (!target_dm) {
                                if (ELEM3(obr->type, OB_CURVE, OB_SURF, 
OB_FONT))
                                        target_dm = CDDM_from_curve(obr);
@@ -476,6 +477,7 @@
                                        else
                                                target_dm = CDDM_from_mesh(me, 
obr);
                                }
+                               free_target_dm = TRUE;
                        }
 
                        /* We must check that we do have a valid target_dm! */
@@ -495,6 +497,7 @@
                                        if(dists_f)
                                                new_w[i] = minf(dists_f[i], 
new_w[i]);
                                }
+                               if(free_target_dm) 
target_dm->release(target_dm);
                                if(dists_v) MEM_freeN(dists_v);
                                if(dists_e) MEM_freeN(dists_e);
                                if(dists_f) MEM_freeN(dists_f);

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

Reply via email to