Exemplo n.º 1
0
 IEnumerable <XObject> GetLottieObjectContents(LottieObject obj)
 {
     if (!string.IsNullOrWhiteSpace(obj.Name))
     {
         yield return(new XAttribute(nameof(obj.Name), obj.Name));
     }
 }
Exemplo n.º 2
0
        YamlObject FromLottieObject(LottieObject obj)
        {
            var superclassContent = GetLottieObjectContent(obj);

            switch (obj.ObjectType)
            {
            case LottieObjectType.Effect:
                return(FromEffect((Effect)obj, superclassContent));

            case LottieObjectType.Layer:
                return(FromLayer((Layer)obj, superclassContent));

            case LottieObjectType.LottieComposition:
                return(FromLottieComposition((LottieComposition)obj, superclassContent));

            case LottieObjectType.Marker:
                return(FromMarker((Marker)obj, superclassContent));

            case LottieObjectType.ShapeLayerContent:
                return(FromShapeLayerContent((ShapeLayerContent)obj, superclassContent));

            default:
                throw Unreachable;
            }
        }
        YamlMap GetLottieObjectContent(LottieObject obj)
        {
            var result = new YamlMap
            {
                { "Name", obj.Name },
            };

            return(result);
        }
Exemplo n.º 4
0
        YamlMap GetLottieObjectContent(LottieObject obj)
        {
            var name = obj.Name;

            var result = new YamlMap
            {
                { nameof(obj.Name), name },
            };

            if (name is string)
            {
                result.Comment = name;
            }

            return(result);
        }
        YamlObject FromLottieObject(LottieObject obj)
        {
            var superclassContent = GetLottieObjectContent(obj);

            switch (obj.ObjectType)
            {
            case LottieObjectType.LottieComposition:
                return(FromLottieComposition((LottieComposition)obj, superclassContent));

            case LottieObjectType.Marker:
                return(FromMarker((Marker)obj, superclassContent));

            case LottieObjectType.ImageLayer:
            case LottieObjectType.NullLayer:
            case LottieObjectType.PreCompLayer:
            case LottieObjectType.ShapeLayer:
            case LottieObjectType.SolidLayer:
            case LottieObjectType.TextLayer:
                return(FromLayer((Layer)obj, superclassContent));

            case LottieObjectType.Ellipse:
            case LottieObjectType.LinearGradientFill:
            case LottieObjectType.LinearGradientStroke:
            case LottieObjectType.MergePaths:
            case LottieObjectType.Polystar:
            case LottieObjectType.RadialGradientFill:
            case LottieObjectType.RadialGradientStroke:
            case LottieObjectType.Rectangle:
            case LottieObjectType.Repeater:
            case LottieObjectType.RoundedCorner:
            case LottieObjectType.Shape:
            case LottieObjectType.ShapeGroup:
            case LottieObjectType.SolidColorFill:
            case LottieObjectType.SolidColorStroke:
            case LottieObjectType.Transform:
            case LottieObjectType.TrimPath:
                return(FromShapeLayerContent((ShapeLayerContent)obj, superclassContent));

            default:
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 6
0
        XElement FromLottieObject(LottieObject obj)
        {
            switch (obj.ObjectType)
            {
            case LottieObjectType.Ellipse:
                return(FromEllipse((Ellipse)obj));

            case LottieObjectType.ImageLayer:
                return(FromImageLayer((ImageLayer)obj));

            case LottieObjectType.LinearGradientFill:
                return(FromLinearGradientFill((LinearGradientFill)obj));

            case LottieObjectType.LinearGradientStroke:
                return(FromLinearGradientStroke((LinearGradientStroke)obj));

            case LottieObjectType.LottieComposition:
                return(FromLottieComposition((LottieComposition)obj));

            case LottieObjectType.Marker:
                return(FromMarker((Marker)obj));

            case LottieObjectType.MergePaths:
                return(FromMergePaths((MergePaths)obj));

            case LottieObjectType.NullLayer:
                return(FromNullLayer((NullLayer)obj));

            case LottieObjectType.Polystar:
                return(FromPolystar((Polystar)obj));

            case LottieObjectType.PreCompLayer:
                return(FromPreCompLayer((PreCompLayer)obj));

            case LottieObjectType.RadialGradientFill:
                return(FromRadialGradientFill((RadialGradientFill)obj));

            case LottieObjectType.RadialGradientStroke:
                return(FromRadialGradientStroke((RadialGradientStroke)obj));

            case LottieObjectType.Rectangle:
                return(FromRectangle((Rectangle)obj));

            case LottieObjectType.Repeater:
                return(FromRepeater((Repeater)obj));

            case LottieObjectType.RoundedCorner:
                return(FromRoundedCorner((RoundedCorner)obj));

            case LottieObjectType.Shape:
                return(FromShape((Path)obj));

            case LottieObjectType.ShapeGroup:
                return(FromShapeGroup((ShapeGroup)obj));

            case LottieObjectType.ShapeLayer:
                return(FromShapeLayer((ShapeLayer)obj));

            case LottieObjectType.SolidColorFill:
                return(FromSolidColorFill((SolidColorFill)obj));

            case LottieObjectType.SolidColorStroke:
                return(FromSolidColorStroke((SolidColorStroke)obj));

            case LottieObjectType.SolidLayer:
                return(FromSolidLayer((SolidLayer)obj));

            case LottieObjectType.TextLayer:
                return(FromTextLayer((TextLayer)obj));

            case LottieObjectType.Transform:
                return(FromTransform((Transform)obj));

            case LottieObjectType.TrimPath:
                return(FromTrimPath((TrimPath)obj));
            }

            throw Unreachable;
        }
Exemplo n.º 7
0
 XDocument ToXDocument(LottieObject lottieObject)
 {
     return(new XDocument(FromLottieObject(lottieObject)));
 }
Exemplo n.º 8
0
 public static XDocument ToXml(LottieObject lottieObject)
 {
     return(new LottieCompositionXmlSerializer().ToXDocument(lottieObject));
 }