chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#nullable enable
|
||||
|
||||
using T3.Core.Animation;
|
||||
using T3.Core.DataTypes;
|
||||
|
||||
namespace T3.Editor.UiModel.Commands.Animation;
|
||||
|
||||
public sealed class AddKeyframesCommand : ICommand
|
||||
{
|
||||
public string Name => "Add keyframe";
|
||||
public bool IsUndoable => true;
|
||||
|
||||
private readonly Curve _curve;
|
||||
private readonly VDefinition? _originalKey;
|
||||
private readonly VDefinition _newKey;
|
||||
|
||||
|
||||
public AddKeyframesCommand(Curve curve, VDefinition newKey)
|
||||
{
|
||||
_curve = curve;
|
||||
_originalKey = curve.GetV(newKey.U);
|
||||
_newKey = newKey;
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
if (_originalKey != null)
|
||||
{
|
||||
_curve.AddOrUpdateV(_originalKey.U, _originalKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
_curve.RemoveKeyframeAt(_newKey.U);
|
||||
}
|
||||
_curve.UpdateTangents();
|
||||
}
|
||||
|
||||
public void Do()
|
||||
{
|
||||
_curve.AddOrUpdateV(_newKey.U, _newKey);
|
||||
_curve.UpdateTangents();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user