Revision: 42631
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42631
Author:   mont29
Date:     2011-12-14 15:56:42 +0000 (Wed, 14 Dec 2011)
Log Message:
-----------
Adding optionnal weight preview in Weight Paint mode (code inspired by 
Dynapaint one).
Also re-enabled the eModifierTypeFlag_SupportsMapping flag, as it seems to not 
crash anymore (???).

And finally, done some minor style editing...

Modified Paths:
--------------
    
branches/vgroup_modifiers/release/scripts/startup/bl_ui/properties_data_modifier.py
    branches/vgroup_modifiers/source/blender/makesdna/DNA_modifier_types.h
    branches/vgroup_modifiers/source/blender/makesrna/intern/rna_modifier.c
    
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvg_util.c
    
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvg_util.h
    branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgedit.c
    branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgmix.c
    
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgproximity.c

Modified: 
branches/vgroup_modifiers/release/scripts/startup/bl_ui/properties_data_modifier.py
===================================================================
--- 
branches/vgroup_modifiers/release/scripts/startup/bl_ui/properties_data_modifier.py
 2011-12-14 14:53:22 UTC (rev 42630)
+++ 
branches/vgroup_modifiers/release/scripts/startup/bl_ui/properties_data_modifier.py
 2011-12-14 15:56:42 UTC (rev 42631)
@@ -814,7 +814,9 @@
         col.prop(md, "narrowness", slider=True)
 
     @staticmethod
-    def vertex_weight_mask(layout, ob, md):
+    def vertex_weight_common(layout, ob, md):
+        layout.prop(md, "use_weight_preview")
+
         layout.label(text="Influence/Mask Options:")
 
         split = layout.split(percentage=0.4)
@@ -875,7 +877,7 @@
 
         # Common mask options
         layout.separator()
-        self.vertex_weight_mask(layout, ob, md)
+        self.vertex_weight_common(layout, ob, md)
 
     def VERTEX_WEIGHT_MIX(self, layout, ob, md):
         split = layout.split()
@@ -900,7 +902,7 @@
 
         # Common mask options
         layout.separator()
-        self.vertex_weight_mask(layout, ob, md)
+        self.vertex_weight_common(layout, ob, md)
 
     def VERTEX_WEIGHT_PROXIMITY(self, layout, ob, md):
         split = layout.split()
@@ -925,7 +927,7 @@
 
         # Common mask options
         layout.separator()
-        self.vertex_weight_mask(layout, ob, md)
+        self.vertex_weight_common(layout, ob, md)
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)

Modified: branches/vgroup_modifiers/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- branches/vgroup_modifiers/source/blender/makesdna/DNA_modifier_types.h      
2011-12-14 14:53:22 UTC (rev 42630)
+++ branches/vgroup_modifiers/source/blender/makesdna/DNA_modifier_types.h      
2011-12-14 15:56:42 UTC (rev 42631)
@@ -863,11 +863,13 @@
        float   default_weight; /* Weight for vertices not in vgroup. */
 
        /* Mapping stuff. */
-       struct CurveMapping *cmap_curve;  /* The custom mapping curve! */
+       struct  CurveMapping *cmap_curve; /* The custom mapping curve! */
 
        /* The add/remove vertices weight thresholds. */
        float   add_threshold, rem_threshold;
 
+       /* -----Common Options----- */
+       /* XXX This part must be in sync between all WeightVG modifiers! */
        /* Masking options. */
        float   mask_constant; /* The global "influence", if no vgroup nor tex 
is used as mask. */
        /* Name of mask vertex group from which to get weight factors. */
@@ -875,14 +877,14 @@
 
        /* Texture masking. */
        int             mask_tex_use_channel;      /* Which channel to use as 
weightf. */
-       struct Tex *mask_texture;          /* The texture. */
-       struct Object *mask_tex_map_obj;   /* Name of the map object. */
+       struct  Tex *mask_texture;         /* The texture. */
+       struct  Object *mask_tex_map_obj;  /* Name of the map object. */
        /* How to map the texture (using MOD_DISP_MAP_* constants). */
        int             mask_tex_mapping;
        char    mask_tex_uvlayer_name[32]; /* Name of the UV map. */
 
-       /* Padding... */
-       int pad_i1;
+       /* Misc flags (for now, only Weight Preview in Weight Paint mode...). */
+       int             common_flags;
 } WeightVGEditModifierData;
 
 /* WeightVGEdit flags. */
@@ -905,15 +907,17 @@
        /* XXX Note: I tried to keep everything logically ordered – provided the
         *           alignment constraints... */
 
-       char    defgrp_name_a[32];      /* Name of vertex group to 
modify/weight. */
+       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_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. */
+       char    mix_mode;              /* How second vgroups weights affect 
first ones */
+       char    mix_set;               /* What vertices to affect. */
 
        char    pad_c1[6];
 
+       /* -----Common Options----- */
+       /* XXX This part must be in sync between all WeightVG modifiers! */
        /* Masking options. */
        float   mask_constant; /* The global "influence", if no vgroup nor tex 
is used as mask. */
        /* Name of mask vertex group from which to get weight factors. */
@@ -921,13 +925,13 @@
 
        /* Texture masking. */
        int             mask_tex_use_channel;      /* Which channel to use as 
weightf. */
-       struct Tex *mask_texture;          /* The texture. */
-       struct Object *mask_tex_map_obj;   /* Name of the map object. */
+       struct  Tex *mask_texture;         /* The texture. */
+       struct  Object *mask_tex_map_obj;  /* Name of the map object. */
        int             mask_tex_mapping;          /* How to map the texture! */
        char    mask_tex_uvlayer_name[32]; /* Name of the UV map. */
 
-       /* Padding... */
-       int pad_i1;
+       /* Misc flags (for now, only Weight Preview in Weight Paint mode...). */
+       int             common_flags;
 } WeightVGMixModifierData;
 
 /* How second vgroup's weights affect first ones. */
@@ -952,15 +956,24 @@
        /* 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_name[32];           /* Name of vertex group to 
modify/weight. */
 
        /* Proximity modes. */
        int             proximity_mode;
        int             proximity_flags;
 
        /* Target object from which to calculate vertices distances. */
-       struct Object *proximity_ob_target;
+       struct  Object *proximity_ob_target;
 
+       float   min_dist, max_dist;        /* Distances mapping to 0.0/1.0 
weights. */
+
+       /* Put here to avoid breaking existing struct... */
+       short   falloff_type;              /* Using MOD_WVG_MAPPING_* defines. 
*/
+
+       char    pad_c1[6];
+
+       /* -----Common Options----- */
+       /* XXX This part must be in sync between all WeightVG modifiers! */
        /* Masking options. */
        float   mask_constant; /* The global "influence", if no vgroup nor tex 
is used as mask. */
        /* Name of mask vertex group from which to get weight factors. */
@@ -968,18 +981,13 @@
 
        /* Texture masking. */
        int             mask_tex_use_channel;      /* Which channel to use as 
weightf. */
-       struct Tex *mask_texture;          /* The texture. */
-       struct Object *mask_tex_map_obj;   /* Name of the map object. */
+       struct  Tex *mask_texture;         /* The texture. */
+       struct  Object *mask_tex_map_obj;  /* Name of the map object. */
        int             mask_tex_mapping;          /* How to map the texture! */
        char    mask_tex_uvlayer_name[32]; /* Name of the UV Map. */
 
-       float   min_dist, max_dist;        /* Distances mapping to 0.0/1.0 
weights. */
-
-       /* Put here to avoid breaking existing struct... */
-       short   falloff_type;              /* Using MOD_WVG_MAPPING_* defines. 
*/
-
-       /* Padding... */
-       short pad_s1;
+       /* Misc flags (for now, only Weight Preview in Weight Paint mode...). */
+       int             common_flags;
 } WeightVGProximityModifierData;
 
 /* Modes of proximity weighting. */
@@ -1019,6 +1027,9 @@
 #define MOD_WVG_MASK_TEX_USE_VAL                       7
 #define MOD_WVG_MASK_TEX_USE_ALPHA                     8
 
+/* Misc flags */
+#define MOD_WVG_CFLAG_WEIGHT_PREVIEW           (1 << 0)
+
 /* Dynamic paint modifier flags */
 #define MOD_DYNAMICPAINT_TYPE_CANVAS (1 << 0)
 #define MOD_DYNAMICPAINT_TYPE_BRUSH (1 << 1)

Modified: 
branches/vgroup_modifiers/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- branches/vgroup_modifiers/source/blender/makesrna/intern/rna_modifier.c     
2011-12-14 14:53:22 UTC (rev 42630)
+++ branches/vgroup_modifiers/source/blender/makesrna/intern/rna_modifier.c     
2011-12-14 15:56:42 UTC (rev 42631)
@@ -2568,7 +2568,7 @@
        RNA_def_property_update(prop, 0, "rna_Modifier_update");*/
 }
 
-static void rna_def_modifier_weightvg_mask(BlenderRNA *brna, StructRNA *srna)
+static void rna_def_modifier_weightvg_common(BlenderRNA *brna, StructRNA *srna)
 {
        static EnumPropertyItem weightvg_mask_tex_map_items[] = {
                {MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", "Use local generated 
coordinates"},
@@ -2630,6 +2630,12 @@
                                                                    
"coordinates from");
        RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
        RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
+
+       prop= RNA_def_property(srna, "use_weight_preview", PROP_BOOLEAN, 
PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "common_flags", 
MOD_WVG_CFLAG_WEIGHT_PREVIEW);
+       RNA_def_property_ui_text(prop, "Preview Weights", "Preview vertices' 
weights, "
+                                                         "in Weight Paint 
mode.");
+       RNA_def_property_update(prop, 0, "rna_Modifier_update");
 }
 
 static void rna_def_modifier_weightvgedit(BlenderRNA *brna)
@@ -2706,8 +2712,8 @@
                                                        "to be removed from the 
vgroup");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       /* Common masking properties. */
-       rna_def_modifier_weightvg_mask(brna, srna);
+       /* Common properties (mainly masking). */
+       rna_def_modifier_weightvg_common(brna, srna);
 }
 
 static void rna_def_modifier_weightvgmix(BlenderRNA *brna)
@@ -2776,8 +2782,8 @@
        RNA_def_property_ui_text(prop, "Vertex Set", "Which vertices should be 
affected");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       /* Common masking properties. */
-       rna_def_modifier_weightvg_mask(brna, srna);
+       /* Common properties (mainly masking). */
+       rna_def_modifier_weightvg_common(brna, srna);
 }
 
 static void rna_def_modifier_weightvgproximity(BlenderRNA *brna)
@@ -2863,8 +2869,8 @@
        RNA_def_property_ui_text(prop, "Falloff Type", "How weights are mapped 
to there new values");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       /* Common masking properties. */
-       rna_def_modifier_weightvg_mask(brna, srna);
+       /* Common properties (mainly masking). */
+       rna_def_modifier_weightvg_common(brna, srna);
 }
 
 static void rna_def_modifier_ocean(BlenderRNA *brna)

Modified: 
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvg_util.c
===================================================================
--- 
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvg_util.c   
    2011-12-14 14:53:22 UTC (rev 42630)
+++ 
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvg_util.c   
    2011-12-14 15:56:42 UTC (rev 42631)
@@ -1,36 +1,31 @@
 /*
-* $Id$
-*

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

Reply via email to