/// <summary> /// SerializeData - Serialize the contents of this Figure to the provided context. /// </summary> internal void SerializeData(StreamGeometryContext ctx) { ctx.BeginFigure(StartPoint, IsFilled, IsClosed); PathSegmentCollection segments = Segments; int pathSegmentCount = segments == null ? 0 : segments.Count; for (int i = 0; i < pathSegmentCount; i++) { segments.Internal_GetItem(i).SerializeData(ctx); } }
/// <summary> /// Returns true if this geometry may have curved segments /// </summary> public bool MayHaveCurves() { PathSegmentCollection segments = Segments; if (segments == null) { return(false); } int count = segments.Count; for (int i = 0; i < count; i++) { if (segments.Internal_GetItem(i).IsCurved()) { return(true); } } return(false); }
internal PathFigure GetTransformedCopy(Matrix matrix) { PathSegmentCollection segments = Segments; PathFigure result = new PathFigure(); Point current = StartPoint; result.StartPoint = current * matrix; if (segments != null) { int count = segments.Count; for (int i = 0; i < count; i++) { segments.Internal_GetItem(i).AddToFigure(matrix, result, ref current); } } result.IsClosed = IsClosed; result.IsFilled = IsFilled; return(result); }