///<summary> /// Extracts the points of the paths in a flat {@link PathIterator} into /// a list of Coordinate arrays. ///</summary> /// <param name="pathGeometry">A path figure collection</param> /// <returns>A list of coordinate arrays</returns> /// <exception cref="ArgumentException">If a non-linear segment type is encountered</exception> private static IList<Coordinate[]> ToCoordinates(PathGeometry pathGeometry) { if (pathGeometry.MayHaveCurves()) throw new ArgumentException("WPF geometry must not have non-linear segments"); var coordArrays = new List<Coordinate[]>(); var pathFigures = pathGeometry.Figures; foreach (PathFigure pathFigure in pathFigures) { var pts = NextCoordinateArray(pathFigure); coordArrays.Add(pts); } return coordArrays; }