protected internal override Path GetPath() { var path = new Path(); foreach (var p in GetPaths()) { path.DrawPath(p); } return(path); }
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); }