fix [#24786] Setting Rotation Units to Radians doesn't affect the UI [33146]
authorCampbell Barton <ideasman42@gmail.com>
Thu, 18 Nov 2010 14:10:09 +0000 (14:10 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 18 Nov 2010 14:10:09 +0000 (14:10 +0000)
release/scripts/ui/properties_scene.py
source/blender/blenkernel/intern/unit.c
source/blender/editors/animation/anim_draw.c
source/blender/editors/interface/interface.c
source/blender/makesdna/DNA_scene_types.h
source/blender/makesrna/intern/rna_scene.c

index e40056cfd30284f5845bfd3fa9b73b8fa6960b9a..b6668e19993fc4f6d3859761814432a63f9f5a3b 100644 (file)
@@ -53,6 +53,7 @@ class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel):
 
         col = layout.column()
         col.row().prop(unit, "system", expand=True)
+        col.row().prop(unit, "system_rotation", expand=True)
 
         split = layout.split()
         split.active = (unit.system != 'NONE')
@@ -63,8 +64,6 @@ class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel):
         col = split.column()
         col.prop(unit, "use_separate")
 
-        layout.column().prop(unit, "rotation_units")
-
 
 class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel):
     bl_label = "Keying Sets"
index 1240b85393b6521d6997fb7c2d913429d38160df..4cb59a2ee86da16b91891f21629ae522ec0aed05 100644 (file)
@@ -255,6 +255,8 @@ static struct bUnitCollection buNaturalTimeCollecton = {buNaturalTimeDef, 3, 0,
 
 static struct bUnitDef buNaturalRotDef[] = {
        {"degree", "degrees",                   "°", NULL, "Degrees",          M_PI/180.0, 0.0,        B_UNIT_DEF_NONE},
+//     {"radian", "radians",                   "r", NULL, "Radians",           1.0, 0.0,                       B_UNIT_DEF_NONE},
+//     {"turn", "turns",                               "t", NULL, "Turns",                     1.0/(M_PI*2.0), 0.0,B_UNIT_DEF_NONE},
        {NULL, NULL, NULL, NULL, NULL, 0.0, 0.0}
 };
 static struct bUnitCollection buNaturalRotCollection = {buNaturalRotDef, 0, 0, sizeof(buNaturalRotDef)/sizeof(bUnitDef)};
index 7cfe180a7bf6f0b235de135c4b4b857c57bae536..dd27de883b337b098800ab77de686f4c41527d77 100644 (file)
@@ -392,7 +392,7 @@ float ANIM_unit_mapping_get_factor (Scene *scene, ID *id, FCurve *fcu, short res
                        if (RNA_SUBTYPE_UNIT(RNA_property_subtype(prop)) == PROP_UNIT_ROTATION)
                        {
                                /* if the radians flag is not set, default to using degrees which need conversions */
-                               if ((scene) && (scene->unit.flag & USER_UNIT_ROT_RADIANS) == 0) {
+                               if ((scene) && (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS) == 0) {
                                        if (restore)
                                                return M_PI / 180.0f;   /* degrees to radians */
                                        else
index 7120440468cddfe735b7d8b754eced9ce9df26b9..85c9feaf823db10dbfd2c52ff7215a44eb9c73cf 100644 (file)
@@ -1252,8 +1252,8 @@ int ui_is_but_unit(uiBut *but)
 
        unit_type = RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop));
 
-#if 0 // removed so angle buttons get correct snapping
-       if (scene->unit.flag & USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION)
+#if 1 // removed so angle buttons get correct snapping
+       if (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION)
                return 0;
 #endif
        
index edba4d7a0eb48bc25e25800920f24bd858202faa..eedcf36c58490f8a04ab414df2fe7a73f75c6752 100644 (file)
@@ -743,8 +743,10 @@ typedef struct bStats {
 typedef struct UnitSettings {
        /* Display/Editing unit options for each scene */
        float scale_length; /* maybe have other unit conversions? */
-       short system;
-       short flag; /* imperial, metric etc */
+       char system; /* imperial, metric etc */
+       char system_rotation; /* not implimented as a propper unit system yet */
+       short flag;
+       
 } UnitSettings;
 
 typedef struct PhysicsSettings {
index 780d99cc8cab2dc39c79e70664ae62119f5cab94..0cb4a251d0c25262d9bfd9228c5207db088618c2 100644 (file)
@@ -1278,6 +1278,11 @@ static void rna_def_unit_settings(BlenderRNA  *brna)
        RNA_def_property_enum_items(prop, unit_systems);
        RNA_def_property_ui_text(prop, "Unit System", "The unit system to use for button display");
        RNA_def_property_update(prop, NC_WINDOW, NULL);
+       
+       prop= RNA_def_property(srna, "system_rotation", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_items(prop, rotation_units);
+       RNA_def_property_ui_text(prop, "Rotation Units", "Unit to use for displaying/editing rotation values");
+       RNA_def_property_update(prop, NC_WINDOW, NULL);
 
        prop= RNA_def_property(srna, "scale_length", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_ui_text(prop, "Unit Scale", "Scale to use when converting between blender units and dimensions");
@@ -1289,12 +1294,6 @@ static void rna_def_unit_settings(BlenderRNA  *brna)
        RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_UNIT_OPT_SPLIT);
        RNA_def_property_ui_text(prop, "Separate Units", "Display units in pairs");
        RNA_def_property_update(prop, NC_WINDOW, NULL);
-       
-       prop= RNA_def_property(srna, "rotation_units", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
-       RNA_def_property_enum_items(prop, rotation_units);
-       RNA_def_property_ui_text(prop, "Rotation Units", "Unit to use for displaying/editing rotation values");
-       RNA_def_property_update(prop, NC_WINDOW, NULL);
 }
 
 void rna_def_render_layer_common(StructRNA *srna, int scene)