public void Do() { _commands.Clear(); for (var i = 0; i < _valuesForKeyframeRestoration.Count; i++) { var curveOpPart = GetCurveOpPartAtIndex(i); var curve = curveOpPart.Func as ICurve; curve.RemoveV(_valuesForKeyframeRestoration[i].KeyframeTime); if (!curve.GetPoints().Any()) { var opPart = GetOperatorPart(_opPartsAndLastValues[curveOpPart.Parent.ID].Item1); var removeAnimationCommand = new RemoveAnimationCommand(opPart, _opPartsAndLastValues[curveOpPart.Parent.ID].Item2); _commands.Add(removeAnimationCommand); removeAnimationCommand.Do(); } } }
public ResetInputToGroupCommand(IEnumerable <OperatorPart> opParts) { _name = "Reset parameter group"; foreach (var opPart in opParts) { OperatorPart animationOpPart = Animation.GetRegardingAnimationOpPart(opPart); var isAnimated = animationOpPart != null; var isConnected = !isAnimated && opPart.Connections.Count > 0; // Don't reset connected parameters that are not animations if (!isConnected) { if (isAnimated) { var removeAnimationCmd = new RemoveAnimationCommand(opPart, 0); // Last Value will be restored anyways _commands.Add(removeAnimationCmd); } var resetCmd = new ResetInputToDefault(opPart); _commands.Add(resetCmd); } } }