Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-11-12 16:04:02 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-11-12 16:04:02 +0300
commit987732181f779ca792de933aa5f001168b1f6f26 (patch)
treeccc00520854194fb2d591c4ba3b2abf5fe72b65f
parenta8f1bea5901c2cccf9b1408090f85ee072589cce (diff)
parentd0c1d93b7e7b453016ac83b3b1a57a220618a835 (diff)
Merge branch 'blender-v2.91-release'
-rw-r--r--source/blender/blenkernel/intern/fluid.c3
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c7
-rw-r--r--source/blender/makesrna/intern/rna_fcurve.c33
3 files changed, 37 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index eb1d77eb0f4..30bf84ae6e1 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -3201,8 +3201,7 @@ static void update_effectors_task_cb(void *__restrict userdata,
normalize_v3(retvel);
mul_v3_fl(retvel, mag);
- /* Constrain forces to interval -1 to 1. */
- CLAMP3(retvel, -1.0f, 1.0f);
+ /* Copy computed force to fluid solver forces. */
data->force_x[index] = retvel[0];
data->force_y[index] = retvel[1];
data->force_z[index] = retvel[2];
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index 9c7c859a05d..920f1d346b9 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -423,13 +423,14 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel)
but_max_width,
UI_UNIT_Y,
&bezt_ptr,
- "co",
+ "co_ui",
0,
0,
0,
0,
0,
NULL);
+ UI_but_func_set(but, graphedit_activekey_update_cb, fcu, bezt);
uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE);
but = uiDefButR(block,
@@ -441,7 +442,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel)
but_max_width,
UI_UNIT_Y,
&bezt_ptr,
- "co",
+ "co_ui",
1,
0,
0,
@@ -450,8 +451,6 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel)
NULL);
UI_but_func_set(but, graphedit_activekey_update_cb, fcu, bezt);
UI_but_unit_type_set(but, unit);
-
- UI_but_func_set(but, graphedit_activekey_update_cb, fcu, bezt);
}
/* previous handle - only if previous was Bezier interpolation */
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c
index 1c5e3688312..38328628f11 100644
--- a/source/blender/makesrna/intern/rna_fcurve.c
+++ b/source/blender/makesrna/intern/rna_fcurve.c
@@ -463,6 +463,27 @@ static void rna_FKeyframe_ctrlpoint_set(PointerRNA *ptr, const float *values)
bezt->vec[1][1] = values[1];
}
+static void rna_FKeyframe_ctrlpoint_ui_set(PointerRNA *ptr, const float *values)
+{
+ BezTriple *bezt = (BezTriple *)ptr->data;
+
+ const float frame_delta = values[0] - bezt->vec[1][0];
+ const float value_delta = values[1] - bezt->vec[1][1];
+
+ /** To match the behavior of transforming the keyframe Co using the Graph Editor
+ * (transform_convert_graph.c) flushTransGraphData(), we will also move the handles by
+ * the same amount as the Co delta. */
+
+ bezt->vec[0][0] += frame_delta;
+ bezt->vec[0][1] += value_delta;
+
+ bezt->vec[1][0] = values[0];
+ bezt->vec[1][1] = values[1];
+
+ bezt->vec[2][0] += frame_delta;
+ bezt->vec[2][1] += value_delta;
+}
+
/* ****************************** */
static void rna_FCurve_RnaPath_get(PointerRNA *ptr, char *value)
@@ -2099,6 +2120,18 @@ static void rna_def_fkeyframe(BlenderRNA *brna)
RNA_def_property_update(prop, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, "rna_Keyframe_update");
prop = RNA_def_property(
+ srna, "co_ui", PROP_FLOAT, PROP_COORDS); /* keyframes are dimensionless */
+ RNA_def_property_array(prop, 2);
+ RNA_def_property_float_funcs(
+ prop, "rna_FKeyframe_ctrlpoint_get", "rna_FKeyframe_ctrlpoint_ui_set", NULL);
+ RNA_def_property_ui_text(
+ prop,
+ "Control Point",
+ "Coordinates of the control point. Note: Changing this value also updates the handles "
+ "similar to using the graph editor transform operator");
+ RNA_def_property_update(prop, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, "rna_Keyframe_update");
+
+ prop = RNA_def_property(
srna, "handle_right", PROP_FLOAT, PROP_COORDS); /* keyframes are dimensionless */
RNA_def_property_array(prop, 2);
RNA_def_property_float_funcs(