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; } }
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); }
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); }
YamlObject FromRadialGradientFill(RadialGradientFill content, YamlMap superclassContent) { var result = superclassContent; AddFromIRadialGradient(content, result); return(result); }
YamlObject FromLinearGradientFill(LinearGradientFill content, YamlMap superclassContent) { var result = superclassContent; AddFromIGradient(content, result); return(result); }
YamlObject FromSolidColorFill(SolidColorFill content, YamlMap superclassContent) { var result = superclassContent; result.Add(nameof(content.Color), FromAnimatable(content.Color)); return(result); }
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(); } }
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); }
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); }
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); }
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); }
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); }