/// <summary>
        /// Transforms list of points from data coordinates to screen coordinates.
        /// </summary>
        /// <param name="dataPoints">Points in data coordinates</param>
        /// <param name="transform">CoordinateTransform used to perform transformation</param>
        /// <returns>Points in screen coordinates</returns>
        public static List <Point> DataToScreenAsList(this IEnumerable <Point> dataPoints, CoordinateTransform transform)
        {
            ICollection <Point> iCollection = dataPoints as ICollection <Point>;
            List <Point>        res;

            if (iCollection != null)
            {
                res = new List <Point>(iCollection.Count);
            }
            else
            {
                res = new List <Point>();
            }

            foreach (var point in dataPoints)
            {
                res.Add(transform.DataToScreen(point));
            }

            return(res);
        }
		/// <summary>
		/// Transforms list of points from data coordinates to screen coordinates.
		/// </summary>
		/// <param name="dataPoints">Points in data coordinates</param>
		/// <param name="transform">CoordinateTransform used to perform transformation</param>
		/// <returns>Points in screen coordinates</returns>
		public static List<Point> DataToScreen(this IEnumerable<Point> dataPoints, CoordinateTransform transform)
		{
			ICollection<Point> iCollection = dataPoints as ICollection<Point>;
			List<Point> res;

			if (iCollection != null)
			{
				res = new List<Point>(iCollection.Count);
			}
			else
			{
				res = new List<Point>();
			}

			foreach (var point in dataPoints)
			{
				res.Add(transform.DataToScreen(point));
			}

			return res;
		}
		/// <summary>
		/// Transforms point in data coordinates to screen coordinates.
		/// </summary>
		/// <param name="dataPoint">Point in data coordinates</param>
		/// <param name="transform">CoordinateTransform used to perform transformation</param>
		/// <returns>Point in screen coordinates</returns>
		public static Point DataToScreen(this Point dataPoint, CoordinateTransform transform)
		{
			return transform.DataToScreen(dataPoint);
		}
 /// <summary>
 /// Transforms point in data coordinates to screen coordinates.
 /// </summary>
 /// <param name="dataPoint">Point in data coordinates</param>
 /// <param name="transform">CoordinateTransform used to perform transformation</param>
 /// <returns>Point in screen coordinates</returns>
 public static Point DataToScreen(this Point dataPoint, CoordinateTransform transform)
 {
     return(transform.DataToScreen(dataPoint));
 }