/// <summary>Canonical coordinates for a selected hex for a given AutoScroll position.</summary> /// <param name="point">Screen point specifying hex to be identified.</param> /// <param name="autoScroll">AutoScrollPosition for game-display Panel.</param> /// <returns>Canonical coordinates for a hex specified by a screen point.</returns> /// <remarks>See "file://Documentation/HexGridAlgorithm.mht"</remarks> protected ICoordsCanon GetHexCoords(Point point, Size autoScroll) { if (Host == null) { return(HexCoords.EmptyCanon); } autoScroll = TransposeSize(autoScroll); // Adjust for origin not as assumed by GetCoordinate(). var grid = new Size((int)(GridSize.Width * 2F / 3F), (int)GridSize.Height); var margin = new Size((int)(MapMargin.Width * MapScale), (int)(MapMargin.Height * MapScale)); point -= autoScroll + margin + grid; return(HexCoords.NewCanonCoords(GetCoordinate(matrixX, point), GetCoordinate(matrixY, point))); }
public static ICoordsUser operator +(ICoordsUser coords, IntVector2D vector) { return(HexCoords.NewCanonCoords(coords.Vector.X + vector.X, coords.Vector.Y + vector.Y).User); }