AStarCollisionMap.Collision.CollisionMap.PixelsBetweenPoints C# (CSharp) Method

PixelsBetweenPoints() public method

Gets the pixels between points.
public PixelsBetweenPoints ( Point p1, Point p2, int spacing ) : Point[]
p1 Point Point one
p2 Point Point two
spacing int The pixel spacing between the points (default should be 1). Lower than 1 will use 1.
return Point[]
        public Point[] PixelsBetweenPoints(Point p1, Point p2, int spacing)
        {
            if (spacing < 1) spacing = 1;
            int xDiff = p2.X - p1.X;
            int yDiff = p2.Y - p1.Y;

            double maxWidth = Math.Max(Math.Abs(xDiff), Math.Abs(yDiff));

            double xDelta = (xDiff / maxWidth) * spacing;
            // Console.Out.WriteLine("xDelta: " + xDelta);
            double yDelta = (yDiff / maxWidth) * spacing;
            // Console.Out.WriteLine("yDelta: " + yDelta);

            CustomArrayList<Point> pointList = new CustomArrayList<Point>();
            Point currentPoint = p1;
            Point previousPoint = new Point(-100, -100);
            double currentX = p1.X, currentY = p1.Y;
            for (int i = 0; i < maxWidth / spacing; i++)
            {
                currentX += xDelta;
                currentY += yDelta;

                currentPoint.X = (int)currentX;
                currentPoint.Y = (int)currentY;

                Point newPoint = new Point(currentPoint.X, currentPoint.Y);
                if (previousPoint != null && !previousPoint.Equals(newPoint))
                {
                    // Console.Out.WriteLine(i + ". Adding point to list: " + newPoint);
                    pointList.AddLast(newPoint);
                }
                previousPoint = newPoint;
            }
            return pointList.ToArray();
        }