Ejemplo n.º 1
0
        protected internal override Path GetPath()
        {
            var path = new Path();

            foreach (var p in GetPaths())
            {
                path.DrawPath(p);
            }

            return(path);
        }
Ejemplo n.º 2
0
        protected Path GetWrappingPath(float dpi = 72)
        {
            var rectangle = Rectangle;
            var path      = new Path();

            foreach (var r in WrappingRectangles.Where(r => !r.IsEmpty && rectangle.IntersectsWith(r)))
            {
                var rectToWrap = r.Clone();
                rectToWrap.Width  += WrappingMargin * 2;
                rectToWrap.Height += WrappingMargin * 2;

                path.DrawPath(rectToWrap.GetPath());
            }

            if (path.Points.Count > 0)
            {
                using (var matrix = new Matrix())
                {
                    if (!Utils.EqualsOfFloatNumbers(Angle, 0))
                    {
                        matrix.RotateAt(-(float)Angle, rectangle.Center.ToPointF());
                    }

                    if (!Utils.EqualsOfFloatNumbers(1, HorizontalScale) || !Utils.EqualsOfFloatNumbers(1, VerticalScale))
                    {
                        matrix.Scale(1 / HorizontalScale, 1 / VerticalScale, MatrixOrder.Append);
                    }

                    if (!Utils.EqualsOfFloatNumbers(dpi, 72))
                    {
                        matrix.Scale(dpi / 72, dpi / 72, MatrixOrder.Append);
                    }

                    path.ApplyTransform(matrix);
                }
            }

            return(path);
        }