Class DiamondGrid<TCell>
Represents a diamond grid. At its simplest, diamond grids are square grids that are rotated 45 degrees.
By using suitable dimensions in the map, DiamondGrids can be used to implement isometric grids.
[Version(1, 0, 0)]
public class DiamondGrid<TCell> : AbstractUniformGrid<TCell, DiamondPoint>, IEvenGrid<TCell, DiamondPoint, DiamondPoint>, IVectorGrid<TCell, DiamondPoint, DiamondPoint>, IGrid<TCell, DiamondPoint>, IGrid<DiamondPoint>, IGridSpace<DiamondPoint>, IEnumerable<DiamondPoint>, IEnumerable, ISupportsVertexGrid<DiamondPoint>, ISupportsEdgeGrid<RectPoint>
Type Parameters
TCell
- Inheritance
-
AbstractUniformGrid<TCell, DiamondPoint>DiamondGrid<TCell>
- Implements
-
IGrid<TCell, DiamondPoint>
- Inherited Members
- Extension Methods
Constructors
DiamondGrid(int, int)
Construct a new grid in the default shape with the given width and height. No transformations are applied to the grid.
Normally, the static factory methods or shape building methods should be used to create grids. These constructors are provided for advanced usage.
public DiamondGrid(int width, int height)
Parameters
DiamondGrid(int, int, Func<DiamondPoint, bool>)
Construct a new grid whose cells are determined by the given test function.
The test function should only return true for points within the bounds of the default shape.
No transformations are applied to the grid.
Normally, the static factory methods or shape building methods should be used to create grids. These constructors are provided for advanced usage.
public DiamondGrid(int width, int height, Func<DiamondPoint, bool> isInside)
Parameters
width
intheight
intisInside
Func<DiamondPoint, bool>
DiamondGrid(int, int, Func<DiamondPoint, bool>, DiamondPoint)
Construct a new grid whose cells are determined by the given test function.
The function should only return true for points within the bounds of the rectangle when the given transforms are applied to them.
Normally, the static factory methods or shape building methods should be used to create grids. These constructors are provided for advanced usage.
public DiamondGrid(int width, int height, Func<DiamondPoint, bool> isInside, DiamondPoint offset)
Parameters
width
intheight
intisInside
Func<DiamondPoint, bool>offset
DiamondPoint
DiamondGrid(int, int, Func<DiamondPoint, bool>, Func<DiamondPoint, DiamondPoint>, Func<DiamondPoint, DiamondPoint>)
public DiamondGrid(int width, int height, Func<DiamondPoint, bool> isInside, Func<DiamondPoint, DiamondPoint> gridPointTransform, Func<DiamondPoint, DiamondPoint> inverseGridPointTransform)
Parameters
width
intheight
intisInside
Func<DiamondPoint, bool>gridPointTransform
Func<DiamondPoint, DiamondPoint>inverseGridPointTransform
Func<DiamondPoint, DiamondPoint>
DiamondGrid(int, int, Func<DiamondPoint, bool>, Func<DiamondPoint, DiamondPoint>, Func<DiamondPoint, DiamondPoint>, IEnumerable<DiamondPoint>)
public DiamondGrid(int width, int height, Func<DiamondPoint, bool> isInside, Func<DiamondPoint, DiamondPoint> gridPointTransform, Func<DiamondPoint, DiamondPoint> inverseGridPointTransform, IEnumerable<DiamondPoint> neighborDirections)
Parameters
width
intheight
intisInside
Func<DiamondPoint, bool>gridPointTransform
Func<DiamondPoint, DiamondPoint>inverseGridPointTransform
Func<DiamondPoint, DiamondPoint>neighborDirections
IEnumerable<DiamondPoint>
Properties
GridOrigin
Gives the Zero point as transform by this grids transforms.
protected override DiamondPoint GridOrigin { get; }
Property Value
Methods
ArrayPointFromGridPoint(DiamondPoint)
public static ArrayPoint ArrayPointFromGridPoint(DiamondPoint point)
Parameters
point
DiamondPoint
Returns
ArrayPointFromPoint(DiamondPoint)
protected override ArrayPoint ArrayPointFromPoint(DiamondPoint point)
Parameters
point
DiamondPoint
Returns
ArrayPointFromPoint(int, int)
protected override ArrayPoint ArrayPointFromPoint(int x, int y)
Parameters
Returns
BeginShape()
Use this method to begin a shape building sequence.
public static DiamondOp<TCell> BeginShape()
Returns
- DiamondOp<TCell>
CalculateStorage(IEnumerable<DiamondPoint>)
public static IntRect CalculateStorage(IEnumerable<DiamondPoint> points)
Parameters
points
IEnumerable<DiamondPoint>
Returns
CloneStructure<TNewCellType>()
Returns a grid in the same shape, but with contents in the new type.
public override IGrid<TNewCellType, DiamondPoint> CloneStructure<TNewCellType>()
Returns
- IGrid<TNewCellType, DiamondPoint>
Type Parameters
TNewCellType
Default(int, int)
public static DiamondGrid<TCell> Default(int width, int height)
Parameters
Returns
- DiamondGrid<TCell>
DefaultContains(DiamondPoint, int, int)
public static bool DefaultContains(DiamondPoint point, int width, int height)
Parameters
point
DiamondPointwidth
intheight
int
Returns
Diamond(int)
public static DiamondGrid<TCell> Diamond(int side)
Parameters
side
int
Returns
- DiamondGrid<TCell>
FatRectangle(int, int)
public static DiamondGrid<TCell> FatRectangle(int width, int height)
Parameters
Returns
- DiamondGrid<TCell>
GetPrincipleNeighborDirections()
This is the set of neighbor directions so that it contains only one of the neighbor directions of a pair of opposites.
public IEnumerable<DiamondPoint> GetPrincipleNeighborDirections()
Returns
GetSpiralIterator(DiamondPoint, int)
[Version(1, 10, 0)]
public IEnumerable<DiamondPoint> GetSpiralIterator(DiamondPoint origin, int ringCount)
Parameters
origin
DiamondPointringCount
int
Returns
GetSpiralIterator(int)
[Version(1, 10, 0)]
public IEnumerable<DiamondPoint> GetSpiralIterator(int ringCount)
Parameters
ringCount
int
Returns
GridPointFromArrayPoint(ArrayPoint)
public static DiamondPoint GridPointFromArrayPoint(ArrayPoint point)
Parameters
point
ArrayPoint
Returns
HorizontallyWrappedParallelogram(int, int)
Returns a grid wrapped horizontally along a parallelogram.
Since version 1.7
public static WrappedGrid<TCell, DiamondPoint> HorizontallyWrappedParallelogram(int width, int height)
Parameters
Returns
- WrappedGrid<TCell, DiamondPoint>
MakeEdgeGrid<TNewCell>()
Makes an edge grid for this grid.
public IGrid<TNewCell, RectPoint> MakeEdgeGrid<TNewCell>()
Returns
Type Parameters
TNewCell
MakeVertexGrid<TNewCell>()
Makes a vertex grid for this grid.
public IGrid<TNewCell, DiamondPoint> MakeVertexGrid<TNewCell>()
Returns
- IGrid<TNewCell, DiamondPoint>
Type Parameters
TNewCell
Parallelogram(int, int)
public static DiamondGrid<TCell> Parallelogram(int width, int height)
Parameters
Returns
- DiamondGrid<TCell>
PointFromArrayPoint(int, int)
protected override DiamondPoint PointFromArrayPoint(int x, int y)
Parameters
Returns
Rectangle(int, int)
public static DiamondGrid<TCell> Rectangle(int width, int height)
Parameters
Returns
- DiamondGrid<TCell>
SetNeighborsDiagonals()
public void SetNeighborsDiagonals()
SetNeighborsMain()
public void SetNeighborsMain()
SetNeighborsMainAndDiagonals()
public void SetNeighborsMainAndDiagonals()
Single()
public static DiamondGrid<TCell> Single()
Returns
- DiamondGrid<TCell>
ThinRectangle(int, int)
public static DiamondGrid<TCell> ThinRectangle(int width, int height)
Parameters
Returns
- DiamondGrid<TCell>
ToString()
public override string ToString()
Returns
VerticallyWrappedParallelogram(int, int)
Returns a grid wrapped vertically along a parallelogram.
Since version 1.7
public static WrappedGrid<TCell, DiamondPoint> VerticallyWrappedParallelogram(int width, int height)
Parameters
Returns
- WrappedGrid<TCell, DiamondPoint>
WrappedParallelogram(int, int)
Returns a grid wrapped along a parallelogram.
Since version 1.7
public static WrappedGrid<TCell, DiamondPoint> WrappedParallelogram(int width, int height)
Parameters
Returns
- WrappedGrid<TCell, DiamondPoint>