Ejemplo n.º 1
0
        void WriteMap(YamlMap obj, bool allowInlining)
        {
            if (allowInlining && TryInlineMap(obj, _maximumWidth - _indentColumn, out var inlined))
            {
                WriteInline(inlined);
            }
            else
            {
                var maxKeyWidth     = obj.Select(item => item.key.Length).Max();
                var oldInlineColumn = _inlineColumn;
                _inlineColumn = _indentColumn + maxKeyWidth + 2;

                foreach (var(key, value) in obj)
                {
                    WriteLine();

                    if (TryWriteComment(value))
                    {
                        WriteLine();
                        allowInlining = false;
                    }
                    else
                    {
                        allowInlining = true;
                    }

                    Write($"{key}: ");
                    _indentColumn += _indentSize;
                    WriteObject(value, allowInlining);
                    _indentColumn -= _indentSize;
                }

                _inlineColumn = oldInlineColumn;
            }
        }
Ejemplo n.º 2
0
        YamlObject FromLayersAsset(LayerCollectionAsset asset, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(asset.Layers), FromLayerCollection(asset.Layers));
            return(result);
        }
        YamlObject FromRoundCorners(RoundCorners content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.Radius), FromAnimatable(content.Radius));
            return(result);
        }
        YamlObject FromRoundedCorner(RoundedCorner content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Radius", FromAnimatable(content.Radius));
            return(result);
        }
        YamlObject FromShapeLayer(ShapeLayer layer, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(layer.Contents), FromEnumerable(layer.Contents, FromShapeLayerContent));
            return(result);
        }
        YamlObject FromMarker(Marker obj, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Progress", obj.Progress);
            return(result);
        }
        YamlObject FromImageLayer(ImageLayer layer, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("RefId", layer.RefId);
            return(result);
        }
        YamlObject FromShapeGroup(ShapeGroup content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Items", FromSpan(content.Items, FromShapeLayerContent));
            return(result);
        }
Ejemplo n.º 9
0
        YamlObject FromPath(Path content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.Data), FromAnimatable(content.Data, p => FromPathGeometry(p)));
            return(result);
        }
        YamlObject FromCubicBezierEasing(CubicBezierEasing content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.Beziers), FromEnumerable(content.Beziers, FromCubicBezier));
            return(result);
        }
Ejemplo n.º 11
0
        YamlObject FromRadialGradientFill(RadialGradientFill content, YamlMap superclassContent)
        {
            var result = superclassContent;

            AddFromIRadialGradient(content, result);
            return(result);
        }
Ejemplo n.º 12
0
        YamlObject FromLinearGradientFill(LinearGradientFill content, YamlMap superclassContent)
        {
            var result = superclassContent;

            AddFromIGradient(content, result);
            return(result);
        }
Ejemplo n.º 13
0
        YamlObject FromSolidColorFill(SolidColorFill content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.Color), FromAnimatable(content.Color));
            return(result);
        }
Ejemplo n.º 14
0
        YamlObject FromShapeGroup(ShapeGroup content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.Contents), FromSpan(content.Contents, FromShapeLayerContent));
            return(result);
        }
        static YamlMap FromKeyFrame <T>(KeyFrame <T> keyFrame, Func <T, YamlObject> valueSelector)
            where T : IEquatable <T>
        {
            var result = new YamlMap
            {
                { "Frame", keyFrame.Frame },
                { "Value", valueSelector(keyFrame.Value) },
                { "Easing", keyFrame.Easing.Type },
            };

            if (keyFrame is KeyFrame <Vector3> )
            {
                var v3kf = (KeyFrame <Vector3>)(object) keyFrame;
                var cp1  = v3kf.SpatialControlPoint1;
                var cp2  = v3kf.SpatialControlPoint2;
                if (cp1 != Vector3.Zero || cp2 != Vector3.Zero)
                {
                    // Spatial bezier
                    result.Add("ControlPoint1", FromVector3(cp1));
                    result.Add("ControlPoint2", FromVector3(cp2));
                }
            }

            return(result);
        }
        YamlObject FromShapeLayer(ShapeLayer layer, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Content", FromSpan(layer.Contents, FromShapeLayerContent));
            return(result);
        }
        YamlObject FromShapeLayerContent(ShapeLayerContent content, YamlMap superclassContent)
        {
            superclassContent.Add("MatchName", content.MatchName);
            superclassContent.Add("ContentType", content.ContentType);

            switch (content.ContentType)
            {
            case ShapeContentType.Group:
                return(FromShapeGroup((ShapeGroup)content, superclassContent));

            case ShapeContentType.SolidColorStroke:
                return(FromSolidColorStroke((SolidColorStroke)content, superclassContent));

            case ShapeContentType.LinearGradientStroke:
                return(FromLinearGradientStroke((LinearGradientStroke)content, superclassContent));

            case ShapeContentType.RadialGradientStroke:
                return(FromRadialGradientStroke((RadialGradientStroke)content, superclassContent));

            case ShapeContentType.SolidColorFill:
                return(FromSolidColorFill((SolidColorFill)content, superclassContent));

            case ShapeContentType.LinearGradientFill:
                return(FromLinearGradientFill((LinearGradientFill)content, superclassContent));

            case ShapeContentType.RadialGradientFill:
                return(FromRadialGradientFill((RadialGradientFill)content, superclassContent));

            case ShapeContentType.Transform:
                return(FromTransform((Transform)content, superclassContent));

            case ShapeContentType.Path:
                return(FromPath((Path)content, superclassContent));

            case ShapeContentType.Ellipse:
                return(FromEllipse((Ellipse)content, superclassContent));

            case ShapeContentType.Rectangle:
                return(FromRectangle((Rectangle)content, superclassContent));

            case ShapeContentType.Polystar:
                return(FromPolystar((Polystar)content, superclassContent));

            case ShapeContentType.TrimPath:
                return(FromTrimPath((TrimPath)content, superclassContent));

            case ShapeContentType.MergePaths:
                return(FromMergePaths((MergePaths)content, superclassContent));

            case ShapeContentType.Repeater:
                return(FromRepeater((Repeater)content, superclassContent));

            case ShapeContentType.RoundedCorner:
                return(FromRoundedCorner((RoundedCorner)content, superclassContent));

            default:
                throw new InvalidOperationException();
            }
        }
Ejemplo n.º 18
0
        YamlObject FromExternalImageAsset(ExternalImageAsset asset, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(asset.Path), asset.Path);
            result.Add(nameof(asset.FileName), asset.FileName);
            return(result);
        }
        YamlObject FromRadialGradientFill(RadialGradientFill content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("OpacityPercent", FromAnimatable(content.OpacityPercent));
            result.Add("GradientStops", FromAnimatable(content.GradientStops, p => FromSequence(p, FromGradientStop)));
            return(result);
        }
Ejemplo n.º 20
0
        YamlObject FromMarker(Marker obj, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(obj.Frame), obj.Frame);
            result.Add(nameof(obj.DurationInFrames), obj.DurationInFrames);
            return(result);
        }
Ejemplo n.º 21
0
        YamlObject FromCubicBezierEasing(CubicBezierEasing content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(content.ControlPoint1), FromVector3(content.ControlPoint1));
            result.Add(nameof(content.ControlPoint2), FromVector3(content.ControlPoint2));
            return(result);
        }
        YamlObject FromSolidColorFill(SolidColorFill content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Color", FromAnimatable(content.Color, FromColor));
            result.Add("OpacityPercent", FromAnimatable(content.OpacityPercent));
            return(result);
        }
Ejemplo n.º 23
0
        YamlObject FromPath(Path content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Direction", content.Direction);
            result.Add("Data", FromAnimatable(content.Data, p => FromSequence(p, FromBezierSegment)));
            return(result);
        }
Ejemplo n.º 24
0
        YamlObject FromEmbeddedImageAsset(EmbeddedImageAsset asset, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add(nameof(asset.Format), asset.Format);
            result.Add(nameof(asset.Bytes.Length), asset.Bytes.Length);
            return(result);
        }
        YamlMap FromEllipse(Ellipse content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Diameter", FromAnimatable(content.Diameter));
            result.Add("Position", FromAnimatable(content.Position));
            return(result);
        }
        YamlObject FromSolidLayer(SolidLayer layer, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Width", layer.Width);
            result.Add("Height", layer.Height);
            result.Add("Color", layer.Color);
            return(result);
        }
        YamlMap GetLottieObjectContent(LottieObject obj)
        {
            var result = new YamlMap
            {
                { "Name", obj.Name },
            };

            return(result);
        }
        YamlObject FromTrimPath(TrimPath content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("StartPercent", FromAnimatable(content.StartPercent));
            result.Add("EndPercent", FromAnimatable(content.EndPercent));
            result.Add("OffsetDegrees", FromAnimatable(content.OffsetDegrees));
            return(result);
        }
        YamlObject FromRectangle(Rectangle content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Size", FromAnimatable(content.Size));
            result.Add("Position", FromAnimatable(content.Position));
            result.Add("CornerRadius", FromAnimatable(content.CornerRadius));
            return(result);
        }
        YamlObject FromSolidColorStroke(SolidColorStroke content, YamlMap superclassContent)
        {
            var result = superclassContent;

            result.Add("Color", FromAnimatable(content.Color, FromColor));
            result.Add("OpacityPercent", FromAnimatable(content.OpacityPercent));
            result.Add("Thickness", FromAnimatable(content.Thickness));
            return(result);
        }