nodes: use much smarter time transform function

Fixes #2042
This commit is contained in:
itsmattkc
2022-10-23 12:15:36 -07:00
parent 86a5a0fcfd
commit 5096278e60
12 changed files with 64 additions and 78 deletions
+3 -3
View File
@@ -228,7 +228,7 @@ bool KeyframeView::Paste(std::function<Node *(const QString &)> find_node_functi
for (NodeKeyframe *key : it.value()) {
// Adjust sequence time to node's time
rational t = key->time() - min;
t = GetAdjustedTime(GetTimeTarget(), node_with_id, t, true);
t = GetAdjustedTime(GetTimeTarget(), node_with_id, t, Node::kTransformTowardsInput);
key->set_time(t);
if (NodeKeyframe *existing = node_with_id->GetKeyframeAtTimeOnTrack(key->input(), key->time(), key->track(), key->element())) {
@@ -491,12 +491,12 @@ void KeyframeView::DeselectKeyframe(NodeKeyframe *key)
rational KeyframeView::GetUnadjustedKeyframeTime(NodeKeyframe *key, const rational &time)
{
return GetAdjustedTime(GetTimeTarget(), key->parent(), time, true);
return GetAdjustedTime(GetTimeTarget(), key->parent(), time, Node::kTransformTowardsInput);
}
rational KeyframeView::GetAdjustedKeyframeTime(NodeKeyframe *key)
{
return GetAdjustedTime(key->parent(), GetTimeTarget(), key->time(), false);
return GetAdjustedTime(key->parent(), GetTimeTarget(), key->time(), Node::kTransformTowardsOutput);
}
double KeyframeView::GetKeyframeSceneX(NodeKeyframe *key)