/// <summary> /// Instantiates a PathElement based on the PathElementType /// </summary> /// <param name="elementType">PathElementType</param> /// <returns>ICanvasPathElement</returns> private static ICanvasPathElement CreatePathElement(PathElementType elementType) { ICanvasPathElement result = null; switch (elementType) { case PathElementType.MoveTo: result = new MoveToElement(); break; case PathElementType.Line: result = new LineElement(); break; case PathElementType.HorizontalLine: result = new HorizontalLineElement(); break; case PathElementType.VerticalLine: result = new VerticalLineElement(); break; case PathElementType.QuadraticBezier: result = new QuadraticBezierElement(); break; case PathElementType.SmoothQuadraticBezier: result = new SmoothQuadraticBezierElement(); break; case PathElementType.CubicBezier: result = new CubicBezierElement(); break; case PathElementType.SmoothCubicBezier: result = new SmoothCubicBezierElement(); break; case PathElementType.Arc: result = new ArcElement(); break; case PathElementType.ClosePath: result = new ClosePathElement(); break; } return(result); }
/// <summary> /// Creates a default Path Element for the given PathElementType /// </summary> /// <param name="elementType">PathElementType</param> /// <returns>ICanvasPathElement</returns> internal static ICanvasPathElement CreateDefaultPathElement(PathElementType elementType) { ICanvasPathElement result; switch (elementType) { case PathElementType.ClosePath: result = new ClosePathElement(); break; default: throw new ArgumentException("Creation of Only Default ClosePathElement is supported.", nameof(elementType)); } return(result); }