add option for screw modifier to smooth shade. (renamed smooth_shading to use_smooth_...
authorCampbell Barton <ideasman42@gmail.com>
Fri, 18 May 2012 10:37:49 +0000 (10:37 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 18 May 2012 10:37:49 +0000 (10:37 +0000)
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_screw.c

index 9919865ca3a934edb7c3d02a1b9d5e54d12c9e0f..218585c320f2173c52e53e387ff85a3e48d78e5d 100644 (file)
@@ -547,6 +547,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
         col.prop(md, "angle")
         col.prop(md, "steps")
         col.prop(md, "render_steps")
+        col.prop(md, "use_smooth_shade")
 
         col = split.column()
         row = col.row()
@@ -838,7 +839,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
         if md.mode == 'SHARP':
             layout.prop(md, "sharpness")
 
-        layout.prop(md, "smooth_shading")
+        layout.prop(md, "use_smooth_shade")
         layout.prop(md, "remove_disconnected_pieces")
         row = layout.row()
         row.active = md.remove_disconnected_pieces
index 8e39ded84d5cee54fa38348bb0acf387f4f2e130..971ce613edc273820a50cb14622e1c628bfdd5c6 100644 (file)
@@ -745,10 +745,11 @@ typedef struct ScrewModifierData {
        short   flag;
 } ScrewModifierData;
 
-#define MOD_SCREW_NORMAL_FLIP  (1<<0)
-#define MOD_SCREW_NORMAL_CALC  (1<<1)
-#define MOD_SCREW_OBJECT_OFFSET        (1<<2)
-// #define MOD_SCREW_OBJECT_ANGLE      (1<<4)
+#define MOD_SCREW_NORMAL_FLIP    (1 << 0)
+#define MOD_SCREW_NORMAL_CALC    (1 << 1)
+#define MOD_SCREW_OBJECT_OFFSET  (1 << 2)
+// #define MOD_SCREW_OBJECT_ANGLE      (1 << 4)
+#define MOD_SCREW_SMOOTH_SHADING (1 << 5)
 
 typedef struct OceanModifierData {
        ModifierData modifier;
index 38a0147b07c62b9a7746a462ff8b22230dec6f95..4a7050b47e90440b833d938680f4de8b14cf63fa 100644 (file)
@@ -2627,6 +2627,11 @@ static void rna_def_modifier_screw(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Object Screw", "Use the distance between the objects to make a screw");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
+       prop = RNA_def_property(srna, "use_smooth_shade", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_SMOOTH_SHADING);
+       RNA_def_property_ui_text(prop, "Smooth Shading", "Output faces with smooth shading rather than flat shaded");
+       RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
 #if 0
        prop= RNA_def_property(srna, "use_angle_object", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_OBJECT_ANGLE);
@@ -3001,7 +3006,7 @@ static void rna_def_modifier_remesh(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Remove Disconnected Pieces", "");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-       prop = RNA_def_property(srna, "smooth_shading", PROP_BOOLEAN, PROP_NONE);
+       prop = RNA_def_property(srna, "use_smooth_shade", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_REMESH_SMOOTH_SHADING);
        RNA_def_property_ui_text(prop, "Smooth Shading", "Output faces with smooth shading rather than flat shaded");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
index 6a57cd82b5074b8417806d1769bbe9a3cac2b152..f45cc9c2adeda797540a8df8eb5c2e8978970291 100644 (file)
@@ -111,7 +111,7 @@ static void initData(ModifierData *md)
        ltmd->ob_axis = NULL;
        ltmd->angle = M_PI * 2.0;
        ltmd->axis = 2;
-       ltmd->flag = 0;
+       ltmd->flag = MOD_SCREW_SMOOTH_SHADING;
        ltmd->steps = 16;
        ltmd->render_steps = 16;
        ltmd->iter = 1;
@@ -175,6 +175,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 
        ScrewVertConnect *vc, *vc_tmp, *vert_connect = NULL;
 
+       const char mpoly_flag = (ltmd->flag & MOD_SCREW_SMOOTH_SHADING) ? ME_SMOOTH : 0;
+
        /* don't do anything? */
        if (!totvert)
                return CDDM_from_template(dm, 0, 0, 0, 0, 0);
@@ -810,7 +812,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 
                        mp_new->loopstart = mpoly_index * 4;
                        mp_new->totloop = 4;
-                       mp_new->flag = ME_SMOOTH;
+                       mp_new->flag = mpoly_flag;
                        origindex[mpoly_index] = ORIGINDEX_NONE;
                        mp_new++;
                        ml_new += 4;