public static void AddPolys(this GraphicsPath path, PathDefinition[] pathDefinition) { foreach (PathDefinition curve in pathDefinition) { switch (curve.CurveType) { case CurveType.Bezier: path.AddPolyBezier(curve.Points); break; case CurveType.Line: path.AddPolyLine(curve.Points); break; default: throw new ArgumentOutOfRangeException( "CurveTYpe", curve.CurveType, "Invalid path construct encountered."); } } }