[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29809] trunk/blender: Fix for [#22667] Soft Body Aero on/off switch
Matt Ebb
matt at mke3.net
Wed Jun 30 04:34:38 CEST 2010
Revision: 29809
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29809
Author: broken
Date: 2010-06-30 04:34:34 +0200 (Wed, 30 Jun 2010)
Log Message:
-----------
Fix for [#22667] Soft Body Aero on/off switch
Under guidance from Jens, converted the 'aero' property into a two-way switch,
which is what it actually represents.
Modified Paths:
--------------
trunk/blender/release/scripts/ui/properties_physics_softbody.py
trunk/blender/source/blender/makesrna/intern/rna_object_force.c
Modified: trunk/blender/release/scripts/ui/properties_physics_softbody.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_physics_softbody.py 2010-06-30 00:48:28 UTC (rev 29808)
+++ trunk/blender/release/scripts/ui/properties_physics_softbody.py 2010-06-30 02:34:34 UTC (rev 29809)
@@ -186,11 +186,13 @@
sub.active = softbody.stiff_quads
sub.prop(softbody, "shear")
- col.label(text="Extra Aerodynamics:")
+ col.label(text="Aerodynamics:")
+ col.row().prop(softbody, "aerodynamics_type", expand=True)
col.prop(softbody, "aero", text="Factor")
- sub = col.column()
- sub.enabled = softbody.aero > 0
- sub.prop(softbody, "new_aero", text="Straw Dynamics")
+
+ #sub = col.column()
+ #sub.enabled = softbody.aero > 0
+
col.label(text="Collision:")
col.prop(softbody, "edge_collision", text="Edge")
Modified: trunk/blender/source/blender/makesrna/intern/rna_object_force.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object_force.c 2010-06-30 00:48:28 UTC (rev 29808)
+++ trunk/blender/source/blender/makesrna/intern/rna_object_force.c 2010-06-30 02:34:34 UTC (rev 29809)
@@ -357,14 +357,19 @@
static int rna_SoftBodySettings_new_aero_get(PointerRNA *ptr)
{
Object *data= (Object*)(ptr->id.data);
- return (((data->softflag) & OB_SB_AERO_ANGLE) != 0);
+ if (data->softflag & OB_SB_AERO_ANGLE)
+ return 1;
+ else
+ return 0;
}
static void rna_SoftBodySettings_new_aero_set(PointerRNA *ptr, int value)
{
Object *data= (Object*)(ptr->id.data);
- if(value) data->softflag |= OB_SB_AERO_ANGLE;
- else data->softflag &= ~OB_SB_AERO_ANGLE;
+ if (value == 1)
+ data->softflag |= OB_SB_AERO_ANGLE;
+ else /* value == 0 */
+ data->softflag &= ~OB_SB_AERO_ANGLE;
}
static int rna_SoftBodySettings_face_collision_get(PointerRNA *ptr)
@@ -1404,6 +1409,11 @@
{SBC_MODE_MAX, "MAXIMAL", 0, "Maximal", "Maximal Spring length * Ball Size"},
{SBC_MODE_AVGMINMAX, "MINMAX", 0, "AvMinMax", "(Min+Max)/2 * Ball Size"},
{0, NULL, 0, NULL, NULL}};
+
+ static EnumPropertyItem aerodynamics_type[] = {
+ {0, "SIMPLE", 0, "Simple", "Edges receive a drag force from surrounding media"},
+ {1, "LIFT_FORCE", 0, "Lift Force", "Edges receive a lift force when passing through surrounding media"},
+ {0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "SoftBodySettings", NULL);
RNA_def_struct_sdna(srna, "SoftBody");
@@ -1660,12 +1670,13 @@
prop= RNA_def_property(srna, "face_collision", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_SoftBodySettings_face_collision_get", "rna_SoftBodySettings_face_collision_set");
- RNA_def_property_ui_text(prop, "Face Collision", "Faces collide too, SLOOOOOW warning");
+ RNA_def_property_ui_text(prop, "Face Collision", "Faces collide too, can be very slow");
RNA_def_property_update(prop, 0, "rna_softbody_update");
- prop= RNA_def_property(srna, "new_aero", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_funcs(prop, "rna_SoftBodySettings_new_aero_get", "rna_SoftBodySettings_new_aero_set");
- RNA_def_property_ui_text(prop, "N", "New aero(uses angle and length)");
+ prop= RNA_def_property(srna, "aerodynamics_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, aerodynamics_type);
+ RNA_def_property_enum_funcs(prop, "rna_SoftBodySettings_new_aero_get", "rna_SoftBodySettings_new_aero_set", NULL);
+ RNA_def_property_ui_text(prop, "Aerodynamics Type", "Method of calculating aerodynamic interaction");
RNA_def_property_update(prop, 0, "rna_softbody_update");
prop= RNA_def_property(srna, "self_collision", PROP_BOOLEAN, PROP_NONE);
More information about the Bf-blender-cvs
mailing list