diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2021-12-28 15:06:17 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2022-01-03 18:06:13 +0300 |
commit | 8f9f65bc29fbd781249583646bcc038e327f2eca (patch) | |
tree | ac4ff531e642e17dd7ef8d235a2591a5c2c5bcd5 /source/blender/makesrna/intern/rna_object_force.c | |
parent | 8189471912564a59948072291fc0056f9b315a9d (diff) |
Allow overrides for cloth, collision and force field properties.
Allow overriding simple properties of cloth simulations, colliders
and force fields. Vertex group and shape key selectors in cloth are
still not overridable since they are tied to mesh data.
Force fields have a number of physical fields shared between multiple
RNA fields. Until they are decoupled, they will produce redundant
overrides, and cannot have different hard range limits.
Differential Revision: https://developer.blender.org/D13710
Diffstat (limited to 'source/blender/makesrna/intern/rna_object_force.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_object_force.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 2fca9f0af7a..d697a48e04b 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -1128,6 +1128,8 @@ static void rna_def_collision(BlenderRNA *brna) RNA_def_struct_ui_text( srna, "Collision Settings", "Collision settings for object in physics simulation"); + RNA_define_lib_overridable(true); + prop = RNA_def_property(srna, "use", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "deflect", 1); RNA_def_property_ui_text( @@ -1230,6 +1232,8 @@ static void rna_def_collision(BlenderRNA *brna) "Cloth collision impulses act in the direction of the collider normals " "(more reliable in some cases)"); RNA_def_property_update(prop, 0, "rna_CollisionSettings_update"); + + RNA_define_lib_overridable(false); } static void rna_def_effector_weight(BlenderRNA *brna) @@ -1243,6 +1247,8 @@ static void rna_def_effector_weight(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Effector Weights", "Effector weights for physics simulation"); RNA_def_struct_ui_icon(srna, ICON_PHYSICS); + RNA_define_lib_overridable(true); + /* Flags */ prop = RNA_def_property(srna, "apply_to_hair_growing", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", EFF_WEIGHT_DO_HAIR); @@ -1362,6 +1368,8 @@ static void rna_def_effector_weight(BlenderRNA *brna) RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1, 3); RNA_def_property_ui_text(prop, "Fluid Flow", "Fluid Flow effector weight"); RNA_def_property_update(prop, 0, "rna_EffectorWeight_update"); + + RNA_define_lib_overridable(false); } static void rna_def_field(BlenderRNA *brna) @@ -1471,6 +1479,8 @@ static void rna_def_field(BlenderRNA *brna) srna, "Field Settings", "Field settings for an object in physics simulation"); RNA_def_struct_ui_icon(srna, ICON_PHYSICS); + RNA_define_lib_overridable(true); + /* Enums */ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); @@ -1514,34 +1524,34 @@ static void rna_def_field(BlenderRNA *brna) prop = RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_strength"); - RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); + RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 10, 3); RNA_def_property_ui_text(prop, "Strength", "Strength of force field"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); /* different ui range to above */ prop = RNA_def_property(srna, "linear_drag", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_strength"); - RNA_def_property_range(prop, -2.0f, 2.0f); + RNA_def_property_ui_range(prop, -2.0f, 2.0f, 10, 3); RNA_def_property_ui_text(prop, "Linear Drag", "Drag component proportional to velocity"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); prop = RNA_def_property(srna, "harmonic_damping", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_damp"); - RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_range(prop, 0.0f, 10.0f, 10, 3); RNA_def_property_ui_text(prop, "Harmonic Damping", "Damping of the harmonic force"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); /* different ui range to above */ prop = RNA_def_property(srna, "quadratic_drag", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_damp"); - RNA_def_property_range(prop, -2.0f, 2.0f); + RNA_def_property_ui_range(prop, -2.0f, 2.0f, 10, 3); RNA_def_property_ui_text( prop, "Quadratic Drag", "Drag component proportional to the square of velocity"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); prop = RNA_def_property(srna, "flow", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_flow"); - RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_range(prop, 0.0f, 10.0f, 10, 3); RNA_def_property_ui_text(prop, "Flow", "Convert effector force into air flow velocity"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); @@ -1557,7 +1567,7 @@ static void rna_def_field(BlenderRNA *brna) /* different ui range to above */ prop = RNA_def_property(srna, "inflow", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_flow"); - RNA_def_property_range(prop, -10.0f, 10.0f); + RNA_def_property_ui_range(prop, -10.0f, 10.0f, 10, 3); RNA_def_property_ui_text(prop, "Inflow", "Inwards component of the vortex force"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); @@ -1570,7 +1580,8 @@ static void rna_def_field(BlenderRNA *brna) prop = RNA_def_property(srna, "rest_length", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_size"); - RNA_def_property_range(prop, 0.0f, 1000.0f); + RNA_def_property_range(prop, 0.0f, FLT_MAX); + RNA_def_property_ui_range(prop, 0.0f, 1000.0f, 10, 3); RNA_def_property_ui_text(prop, "Rest Length", "Rest length of the harmonic force"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); @@ -1728,7 +1739,7 @@ static void rna_def_field(BlenderRNA *brna) prop = RNA_def_property(srna, "guide_minimum", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_strength"); - RNA_def_property_range(prop, 0.0f, 1000.0f); + RNA_def_property_ui_range(prop, 0.0f, 1000.0f, 10, 3); RNA_def_property_ui_text( prop, "Minimum Distance", "The distance from which particles are affected fully"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); @@ -1799,6 +1810,8 @@ static void rna_def_field(BlenderRNA *brna) /* Variables used for Curve Guide, already wrapped, used for other fields too */ /* falloff_power, use_max_distance, maximum_distance */ + + RNA_define_lib_overridable(false); } static void rna_def_softbody(BlenderRNA *brna) @@ -2134,6 +2147,7 @@ static void rna_def_softbody(BlenderRNA *brna) RNA_def_property_pointer_sdna(prop, NULL, "effector_weights"); RNA_def_property_struct_type(prop, "EffectorWeights"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY); RNA_def_property_ui_text(prop, "Effector Weights", ""); } |