Esempio n. 1
0
        /// <summary>
        /// Returns the minimum available grid point.
        /// </summary>
        /// <returns>
        /// A Vector3 point.
        /// </returns>

        public Vector3 AvailableMin()
        {
            var minX = Available.First().X;
            var minY = Available.First().Y;

            foreach (Vector3 point in Available)
            {
                if (point.X + point.Y < minX + minY)
                {
                    minX = point.X;
                    minY = point.Y;
                }
            }
            return(new Vector3(minX, minY));
        }
Esempio n. 2
0
        /// <summary>
        /// Returns the maximum available grid point.
        /// </summary>
        /// <returns>
        /// A Vector3 point.
        /// </returns>

        public Vector3 AvailableMax()
        {
            var maxX = Available.First().X;
            var maxY = Available.First().Y;

            foreach (Vector3 point in Available)
            {
                if (point.X + point.Y > maxX + maxY)
                {
                    maxX = point.X;
                    maxY = point.Y;
                }
            }
            return(new Vector3(maxX, maxY));
        }
Esempio n. 3
0
        /// <summary>
        /// Returns the available grid point nearest to the supplied Vector3 point.
        /// </summary>
        /// <param name="point">The Vector3 point to compare.</param>
        /// <returns>
        /// A Vector3 point.
        /// </returns>
        public Vector3 AvailableNearTo(Vector3 point)
        {
            var x = Available.First().X;
            var y = Available.First().Y;

            foreach (Vector3 aPoint in Available)
            {
                var xDelta = Math.Abs(point.X - aPoint.X);
                var yDelta = Math.Abs(point.Y - aPoint.Y);
                if (xDelta <= Math.Abs(x - aPoint.X) ||
                    yDelta <= Math.Abs(y - aPoint.Y))
                {
                    x = aPoint.X;
                    y = aPoint.Y;
                }
            }
            return(new Vector3(x, y));
        }