Пример #1
0
        /// <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()));
 }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
        }
Пример #6
0
 /// <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);
 }