Undo revision 23130 which was a merge with 2.5, a messy one because I did something...
[blender.git] / source / blender / makesrna / intern / rna_cloth.c
index 22cc2e2..9096bfc 100644 (file)
@@ -37,7 +37,6 @@
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 
-#include "WM_api.h"
 #include "WM_types.h"
 
 #ifdef RNA_RUNTIME
 
 static void rna_cloth_update(bContext *C, PointerRNA *ptr)
 {
-       Object *ob= (Object*)ptr->id.data;
+       Scene *scene = CTX_data_scene(C);
+       Object *ob = ptr->id.data;
 
-       DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
-       WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
+       DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
 }
 
 static void rna_ClothSettings_max_bend_set(struct PointerRNA *ptr, float value)
@@ -152,7 +151,7 @@ static char *rna_ClothSettings_path(PointerRNA *ptr)
        Object *ob= (Object*)ptr->id.data;
        ModifierData *md= modifiers_findByType(ob, eModifierType_Cloth);
 
-       return md ? BLI_sprintfN("modifiers[%s].settings", md->name) : NULL;
+       return BLI_sprintfN("modifiers[%s].settings", md->name);
 }
 
 static char *rna_ClothCollisionSettings_path(PointerRNA *ptr)
@@ -160,7 +159,7 @@ static char *rna_ClothCollisionSettings_path(PointerRNA *ptr)
        Object *ob= (Object*)ptr->id.data;
        ModifierData *md= modifiers_findByType(ob, eModifierType_Cloth);
 
-       return md ? BLI_sprintfN("modifiers[%s].collision_settings", md->name) : NULL;
+       return BLI_sprintfN("modifiers[%s].collision_settings", md->name);
 }
 
 #else
@@ -181,56 +180,50 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna)
        RNA_def_property_float_sdna(prop, NULL, "mingoal");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Goal Minimum", "Goal minimum, vertex group weights are scaled to match this range.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "goal_max", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "maxgoal");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Goal Maximum", "Goal maximum, vertex group weights are scaled to match this range.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "goal_default", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "defgoal");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Goal Default", "Default Goal (vertex target position) value, when no Vertex Group used.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "goal_spring", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "goalspring");
        RNA_def_property_range(prop, 0.0f, 0.999f);
        RNA_def_property_ui_text(prop, "Goal Stiffness", "Goal (vertex target position) spring stiffness.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "goal_friction", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "goalfrict");
        RNA_def_property_range(prop, 0.0f, 50.0f);
        RNA_def_property_ui_text(prop, "Goal Damping", "Goal (vertex target position) friction.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
-
-       prop= RNA_def_property(srna, "internal_friction", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_float_sdna(prop, NULL, "velocity_smooth");
-       RNA_def_property_range(prop, 0.0f, 1.0f);
-       RNA_def_property_ui_text(prop, "Internal Friction", "");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        /* mass */
 
        prop= RNA_def_property(srna, "mass", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 10.0f);
        RNA_def_property_ui_text(prop, "Mass", "Mass of cloth material.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "mass_vertex_group", PROP_STRING, PROP_NONE);
        RNA_def_property_string_funcs(prop, "rna_ClothSettings_mass_vgroup_get", "rna_ClothSettings_mass_vgroup_length", "rna_ClothSettings_mass_vgroup_set");
        RNA_def_property_ui_text(prop, "Mass Vertex Group", "Vertex Group for pinning of vertices.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "gravity", PROP_FLOAT, PROP_ACCELERATION);
        RNA_def_property_array(prop, 3);
        RNA_def_property_range(prop, -100.0, 100.0);
        RNA_def_property_float_funcs(prop, "rna_ClothSettings_gravity_get", "rna_ClothSettings_gravity_set", NULL);
        RNA_def_property_ui_text(prop, "Gravity", "Gravity or external force vector.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        /* various */
 
@@ -238,73 +231,73 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna)
        RNA_def_property_float_sdna(prop, NULL, "Cvi");
        RNA_def_property_range(prop, 0.0f, 10.0f);
        RNA_def_property_ui_text(prop, "Air Damping", "Air has normally some thickness which slows falling things down.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "pin_cloth", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_SIMSETTINGS_FLAG_GOAL);
        RNA_def_property_ui_text(prop, "Pin Cloth", "Enable pinning of cloth vertices to other objects/positions.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "pin_stiffness", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "goalspring");
        RNA_def_property_range(prop, 0.0f, 50.0);
        RNA_def_property_ui_text(prop, "Pin Stiffness", "Pin (vertex target position) spring stiffness.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "quality", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "stepsPerFrame");
        RNA_def_property_range(prop, 4, 80);
        RNA_def_property_ui_text(prop, "Quality", "Quality of the simulation in steps per frame. (higher is better quality but slower)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        /* springs */
 
        prop= RNA_def_property(srna, "stiffness_scaling", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_SIMSETTINGS_FLAG_SCALING);
        RNA_def_property_ui_text(prop, "Stiffness Scaling", "If enabled, stiffness can be scaled along a weight painted vertex group.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "spring_damping", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "Cdis");
        RNA_def_property_range(prop, 0.0f, 50.0f);
        RNA_def_property_ui_text(prop, "Spring Damping", "Damping of cloth velocity. (higher = more smooth, less jiggling)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "structural_stiffness", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "structural");
        RNA_def_property_range(prop, 1.0f, 10000.0f);
        RNA_def_property_ui_text(prop, "Structural Stiffness", "Overall stiffness of structure.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "structural_stiffness_max", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "max_struct");
        RNA_def_property_range(prop, 0.0f, 10000.0f);
        RNA_def_property_float_funcs(prop, NULL, "rna_ClothSettings_max_struct_set", NULL);
        RNA_def_property_ui_text(prop, "Structural Stiffness Maximum", "Maximum structural stiffness value.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "structural_stiffness_vertex_group", PROP_STRING, PROP_NONE);
        RNA_def_property_string_funcs(prop, "rna_ClothSettings_struct_vgroup_get", "rna_ClothSettings_struct_vgroup_length", "rna_ClothSettings_struct_vgroup_set");
        RNA_def_property_ui_text(prop, "Structural Stiffness Vertex Group", "Vertex group for fine control over structural stiffness.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "bending_stiffness", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "bending");
        RNA_def_property_range(prop, 0.0f, 10000.0f);
        RNA_def_property_ui_text(prop, "Bending Stiffness", "Wrinkle coefficient. (higher = less smaller but more big wrinkles)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "bending_stiffness_max", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "max_bend");
        RNA_def_property_range(prop, 0.0f, 10000.0f);
        RNA_def_property_float_funcs(prop, NULL, "rna_ClothSettings_max_bend_set", NULL);
        RNA_def_property_ui_text(prop, "Bending Stiffness Maximum", "Maximum bending stiffness value.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "bending_vertex_group", PROP_STRING, PROP_NONE);
        RNA_def_property_string_funcs(prop, "rna_ClothSettings_bend_vgroup_get", "rna_ClothSettings_bend_vgroup_length", "rna_ClothSettings_bend_vgroup_set");
        RNA_def_property_ui_text(prop, "Bending Stiffness Vertex Group", "Vertex group for fine control over bending stiffness.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        /* unused */
 
@@ -365,48 +358,48 @@ static void rna_def_cloth_collision_settings(BlenderRNA *brna)
        prop= RNA_def_property(srna, "enable_collision", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_COLLSETTINGS_FLAG_ENABLED);
        RNA_def_property_ui_text(prop, "Enable Collision", "Enable collisions with other objects.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "min_distance", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "epsilon");
        RNA_def_property_range(prop, 0.001f, 1.0f);
        RNA_def_property_ui_text(prop, "Minimum Distance", "Minimum distance between collision objects before collision response takes in.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "friction", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 80.0f);
        RNA_def_property_ui_text(prop, "Friction", "Friction force if a collision happened. (higher = less movement)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "collision_quality", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "loop_count");
        RNA_def_property_range(prop, 1, 20);
        RNA_def_property_ui_text(prop, "Collision Quality", "How many collision iterations should be done. (higher is better quality but slower)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        /* self collision */
 
        prop= RNA_def_property(srna, "enable_self_collision", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", CLOTH_COLLSETTINGS_FLAG_SELF);
        RNA_def_property_ui_text(prop, "Enable Self Collision", "Enable self collisions.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "self_min_distance", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "selfepsilon");
        RNA_def_property_range(prop, 0.5f, 1.0f);
        RNA_def_property_ui_text(prop, "Self Minimum Distance", "0.5 means no distance at all, 1.0 is maximum distance.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
        
        prop= RNA_def_property(srna, "self_friction", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 80.0f);
        RNA_def_property_ui_text(prop, "Self Friction", "Friction/damping with self contact.");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 
        prop= RNA_def_property(srna, "self_collision_quality", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "self_loop_count");
        RNA_def_property_range(prop, 1, 10);
        RNA_def_property_ui_text(prop, "Self Collision Quality", "How many self collision iterations should be done. (higher is better quality but slower)");
-       RNA_def_property_update(prop, 0, "rna_cloth_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_GEOM_DATA, "rna_cloth_update");
 }
 
 void RNA_def_cloth(BlenderRNA *brna)