Пример #1
0
        public PathShape ToFillPathShape(IToolContext context, IBaseShape shape)
        {
            using (var geometry = ToPath(context, shape))
            {
                if (geometry != null)
                {
                    var style = context.DocumentContainer?.StyleLibrary?.Get(shape.StyleId);
                    if (style == null)
                    {
                        style = context.DocumentContainer?.StyleLibrary?.CurrentItem;
                    }

                    var path = SkiaHelper.ToFillPath(context, style, geometry);
                    if (path != null)
                    {
                        var union = SkiaHelper.Op(SKPathOp.Union, new[] { path, path });
                        if (union != null && !union.IsEmpty)
                        {
                            return(SkiaHelper.ToPathShape(context, union, context.DocumentContainer?.StyleLibrary?.CurrentItem, context?.DocumentContainer?.PointTemplate));
                        }
                    }
                }
            }
            return(null);
        }
Пример #2
0
        public PathShape ToFillPathShape(IToolContext context, IBaseShape shape)
        {
            using (var geometry = ToPath(context, shape))
            {
                if (geometry != null)
                {
                    var style = context.DocumentContainer?.StyleLibrary?.Get(shape.StyleId);
                    if (style == null)
                    {
                        style = context.DocumentContainer?.StyleLibrary?.CurrentItem;
                    }

                    using (var disposable = new CompositeDisposable())
                    {
                        var path = SkiaHelper.ToFillPath(context, style.FillPaint, shape.Effects, geometry, disposable.Disposables);
                        if (path != null)
                        {
                            disposable.Disposables.Add(path);
                            var union = SkiaHelper.Op(SKPathOp.Union, new[] { path, path });
                            if (union != null && !union.IsEmpty)
                            {
                                disposable.Disposables.Add(union);
                                return(SkiaHelper.ToPathShape(context, union, context.DocumentContainer?.StyleLibrary?.CurrentItem, context?.DocumentContainer?.PointTemplate));
                            }
                        }
                    }
                }
            }
            return(null);
        }