internal override void AddToFigure( Matrix matrix, // The transformation matrix PathFigure figure, // The figure to add to ref Point current) // Out: Segment endpoint, not transformed { PointCollection points = Points; if (points != null && points.Count >= 2) { if (matrix.IsIdentity) { figure.Segments.Add(this); } else { PointCollection copy = new PointCollection(); Point pt = new Point(); int count = points.Count; for (int i = 0; i < count; i++) { pt = points.Internal_GetItem(i); pt *= matrix; copy.Add(pt); } figure.Segments.Add(new PolyQuadraticBezierSegment(copy, IsStroked, IsSmoothJoin)); } current = points.Internal_GetItem(points.Count - 1); } }