/// <summary>The <see cref="KeyFramesNode"/> visit implementation</summary> /// <param name="keyFramesNode">The key frames node.</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public override AstNode VisitKeyFramesNode(KeyFramesNode keyFramesNode) { // keyframes-rule: '@keyframes' IDENT '{' keyframes-blocks '}'; // keyframes-blocks: [ keyframe-selectors block ]* ; // keyframe-selectors: [ 'from' | 'to' | PERCENTAGE ] [ ',' [ 'from' | 'to' | PERCENTAGE ] ]*; _printerFormatter.Append(keyFramesNode.KeyFramesSymbol); _printerFormatter.Append(CssConstants.SingleSpace); if (!string.IsNullOrWhiteSpace(keyFramesNode.IdentValue)) { _printerFormatter.Append(keyFramesNode.IdentValue); } else if (!string.IsNullOrWhiteSpace(keyFramesNode.StringValue)) { _printerFormatter.Append(keyFramesNode.StringValue); } _printerFormatter.AppendLine(); _printerFormatter.WriteIndent(); _printerFormatter.Append(CssConstants.OpenCurlyBracket); keyFramesNode.KeyFramesBlockNodes.ForEach(keyFramesBlockNode => keyFramesBlockNode.Accept(this)); _printerFormatter.AppendLine(); _printerFormatter.WriteIndent(); _printerFormatter.AppendLine(CssConstants.CloseCurlyBracket); return(keyFramesNode); }
/// <summary>The <see cref="KeyFramesNode"/> visit implementation</summary> /// <param name="keyFramesNode">The key frames node.</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public override AstNode VisitKeyFramesNode(KeyFramesNode keyFramesNode) { return(new KeyFramesNode( keyFramesNode.KeyFramesSymbol, keyFramesNode.IdentValue, keyFramesNode.StringValue, keyFramesNode.KeyFramesBlockNodes.Select(keyFramesBlockNode => (KeyFramesBlockNode)keyFramesBlockNode.Accept(this)).ToSafeReadOnlyCollection())); }
public override void AddPoint(WindowsPoint point) { var realPoint = InverseTransformPoint(point); var keyFrame = new AnimationKeyFrame <float> { Key = realPoint.X, Value = realPoint.Y, }; var index = GetInsertIndex(realPoint); KeyFramesNode.Add(keyFrame, index); }
/// <inheritdoc/> public sealed override void AddPoint(WindowsPoint point) { var realPoint = InverseTransformPoint(point); // Make sure the curve is sampled UnderlyingCurve.UpdateChanges(); // Evaluate the current value var value = UnderlyingCurve.Evaluate(realPoint.X); UpdateComponent(ref value, realPoint); var keyFrame = new AnimationKeyFrame <TValue> { Key = realPoint.X, Value = value, }; var index = GetInsertIndex(realPoint); KeyFramesNode.Add(keyFrame, index); }
/// <inheritdoc/> public override void AddPoint(WindowsPoint point) { var realPoint = InverseTransformPoint(point); // Make sure the curve is sampled UnderlyingCurve.UpdateChanges(); // Evaluate the current value var value = UnderlyingCurve.Evaluate(realPoint.X); // Update the component that is handled by this curve switch (Component) { case VectorComponent.X: value.X = realPoint.Y; break; case VectorComponent.Y: value.Y = realPoint.Y; break; case VectorComponent.Z: value.Z = realPoint.Y; break; case VectorComponent.W: value.Z = realPoint.Y; break; default: throw new NotSupportedException(); // This should never happen } // Create a new keyframe var keyFrame = new AnimationKeyFrame <Quaternion> { Key = realPoint.X, Value = value, }; var index = GetInsertIndex(realPoint); KeyFramesNode.Add(keyFrame, index); }
/// <summary>The <see cref="KeyFramesNode"/> visit implementation</summary> /// <param name="keyFramesNode">The key frames node.</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public virtual AstNode VisitKeyFramesNode(KeyFramesNode keyFramesNode) { return(keyFramesNode); }