diff options
author | Hans Goudey <h.goudey@me.com> | 2020-09-07 22:59:07 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2020-09-07 22:59:07 +0300 |
commit | 36aeb0ec1e2ec8cd6a3690ac11cd3c50f3851802 (patch) | |
tree | 4c9ce5df6ba5cc01eb2e0841c57fd9b0e9690b11 /source/blender/makesrna/intern/rna_scene.c | |
parent | d4cca7b7b0d858a45c684fd0725344881e0c1c63 (diff) |
UI: Add temperature units
Based on the original patch by Vaishnav S (@padthai), this adds
support for temperature units. Initially supported units are Celsius,
Kelvin, and Fahrenheit.
The units aren't used anywhere with this commit. Those changes should
happen in separate patches by adding PROP_TEMPERATURE to RNA property
definitions. But it should be ensured that the various solvers and
simulations actually properly use real units.
The complexity of some of the changes comes from the fact that these
units have offsets from each other as well as coefficients. This also
makes the implementation in the current unit system troublesome.
For example, entering 0C evaluates correctly to 273K, but 0C + 0C
doubles that result, because each unit value is evaluated separately.
This is quite hard to solve in the general case with Blender's current
unit system, though, so it is not handled in this commit.
Differential Revision: https://developer.blender.org/D4401
Diffstat (limited to 'source/blender/makesrna/intern/rna_scene.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 65edaf0bcca..ab4ffda8888 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2568,6 +2568,15 @@ const EnumPropertyItem *rna_UnitSettings_time_unit_itemf(bContext *UNUSED(C), return rna_UnitSettings_itemf_wrapper(units->system, B_UNIT_TIME, r_free); } +const EnumPropertyItem *rna_UnitSettings_temperature_unit_itemf(bContext *UNUSED(C), + PointerRNA *ptr, + PropertyRNA *UNUSED(prop), + bool *r_free) +{ + UnitSettings *units = ptr->data; + return rna_UnitSettings_itemf_wrapper(units->system, B_UNIT_TEMPERATURE, r_free); +} + static void rna_UnitSettings_system_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) @@ -3906,6 +3915,13 @@ static void rna_def_unit_settings(BlenderRNA *brna) RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_UnitSettings_time_unit_itemf"); RNA_def_property_ui_text(prop, "Time Unit", "Unit that will be used to display time values"); RNA_def_property_update(prop, NC_WINDOW, NULL); + + prop = RNA_def_property(srna, "temperature_unit", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, DummyRNA_DEFAULT_items); + RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_UnitSettings_temperature_unit_itemf"); + RNA_def_property_ui_text( + prop, "Temperature Unit", "Unit that will be used to display temperature values"); + RNA_def_property_update(prop, NC_WINDOW, NULL); } static void rna_def_view_layer_eevee(BlenderRNA *brna) |