Struct DiamondPoint
Class that represents a points of a DiamondGrid.
[Version(1, 0, 0)]
[Serializable]
public struct DiamondPoint : IGridPoint<DiamondPoint>, IEquatable<DiamondPoint>, IGridPoint, IVectorPoint<DiamondPoint>, ISplicedVectorPoint<DiamondPoint, DiamondPoint>, ISupportsVertices<DiamondPoint>, ISupportsEdges<RectPoint>, IVertex<DiamondPoint>, IEdge<RectPoint>
- Implements
- Inherited Members
- Extension Methods
Constructors
DiamondPoint(int, int)
Constructs a new DiamondPoint with the given coordinates.
public DiamondPoint(int x, int y)
Parameters
Fields
DiagonalDirections
public static readonly PointList<DiamondPoint> DiagonalDirections
Field Value
East
public static readonly DiamondPoint East
Field Value
EdgeDirections
public static readonly IEnumerable<RectPoint> EdgeDirections
Field Value
EdgeFaceDirections
public static readonly List<IEnumerable<RectPoint>> EdgeFaceDirections
Field Value
MainAndDiagonalDirections
public static readonly PointList<DiamondPoint> MainAndDiagonalDirections
Field Value
MainDirections
public static readonly PointList<DiamondPoint> MainDirections
Field Value
North
public static readonly DiamondPoint North
Field Value
NorthEast
public static readonly DiamondPoint NorthEast
Field Value
NorthWest
public static readonly DiamondPoint NorthWest
Field Value
South
public static readonly DiamondPoint South
Field Value
SouthEast
public static readonly DiamondPoint SouthEast
Field Value
SouthWest
public static readonly DiamondPoint SouthWest
Field Value
VertexDirections
public static readonly IEnumerable<DiamondPoint> VertexDirections
Field Value
VertexFaceDirections
public static readonly IEnumerable<DiamondPoint> VertexFaceDirections
Field Value
West
public static readonly DiamondPoint West
Field Value
Zero
The zero point (0, 0).
public static readonly DiamondPoint Zero
Field Value
Properties
BasePoint
A Uniform point's base point is simply the point itself. Makes it easier to implement generic algorithms. Since version 1.1
public DiamondPoint BasePoint { get; }
Property Value
SpliceCount
For spliced grids, this is the number of slices for all points.
For Uniform grids, this is always 1.
public int SpliceCount { get; }
Property Value
SpliceIndex
For spliced grids, this is the index of the splice.
For Uniform grids, this is always 0.
public int SpliceIndex { get; }
Property Value
X
The x-coordinate of this point. This need to be in XML
public int X { get; }
Property Value
Y
The y-coordinate of this point.
public int Y { get; }
Property Value
Methods
DistanceFrom(DiamondPoint)
The lattice distance from this point to the other.
public int DistanceFrom(DiamondPoint other)
Parameters
other
DiamondPoint
Returns
Div(DiamondPoint)
Gives a new point that represents the first point divided by the second point component-wise. The division is integer division.
Since version 1.6 (Rect) Since version 1.7 (other)
public DiamondPoint Div(DiamondPoint otherPoint)
Parameters
otherPoint
DiamondPoint
Returns
Dot(DiamondPoint)
[Version(1, 7, 0)]
public int Dot(DiamondPoint other)
Parameters
other
DiamondPoint
Returns
Equals(DiamondPoint)
public bool Equals(DiamondPoint other)
Parameters
other
DiamondPoint
Returns
Equals(object)
public override bool Equals(object other)
Parameters
other
object
Returns
GetColor(int, int, int)
Gives a coloring of the grid such that if a point p has color k, then all points p + m[ux, 0] + n[vx, vy] have the same color for any integers a and b.
More information anout grid colorings: http://gamelogic.co.za/2013/12/18/what-are-grid-colorings/
Since version 1.7
public int GetColor(int ux, int vx, int vy)
Parameters
Returns
GetColor1_1()
public int GetColor1_1()
Returns
GetColor1_2()
public int GetColor1_2()
Returns
GetColor4()
public int GetColor4()
Returns
GetEdgeAnchor()
public RectPoint GetEdgeAnchor()
Returns
GetEdgeFaces()
Get the coordinates of the faces that corresponds to this point treated as an edge.
public IEnumerable<RectPoint> GetEdgeFaces()
Returns
GetEdges()
public IEnumerable<RectPoint> GetEdges()
Returns
GetHashCode()
public override int GetHashCode()
Returns
GetVertexAnchor()
public DiamondPoint GetVertexAnchor()
Returns
GetVertexFaces()
Get the coordinates of the faces that corresponds to this point treated as a vertex.
public IEnumerable<DiamondPoint> GetVertexFaces()
Returns
GetVertices()
Returns the vertices of the point in the dual grid.
public IEnumerable<DiamondPoint> GetVertices()
Returns
Magnitude()
public int Magnitude()
Returns
Mod(DiamondPoint)
Gives a new point that represents the reminder when the first point is divided by the second point component-wise. The division is integer division.
Since version 1.6 (Rect) Since version 1.7 (other)
public DiamondPoint Mod(DiamondPoint otherPoint)
Parameters
otherPoint
DiamondPoint
Returns
MoveBackBy(DiamondPoint)
If a spliced vectors u and v has base vector B and index I
public DiamondPoint MoveBackBy(DiamondPoint translation)
Parameters
translation
DiamondPoint
Returns
Remarks
new SplicedVector(u.B.Subtract(v.B), (SpliceCount + u.I - v.I) % SpliceCount))
MoveBy(DiamondPoint)
If a spliced vectors u and v has base vector B and index I,
public DiamondPoint MoveBy(DiamondPoint translation)
Parameters
translation
DiamondPoint
Returns
Remarks
This operation is the same as
new SplicedVector(u.B.Translate(v.B), (u.I + v.I) % SpliceCount))
Mul(DiamondPoint)
Gives a new point that represents the first point multiplied by the second point component-wise.
Since version 1.6 (Rect) Since version 1.7 (other)
public DiamondPoint Mul(DiamondPoint otherPoint)
Parameters
otherPoint
DiamondPoint
Returns
Negate()
Returns a new point with the vector component negated.
public DiamondPoint Negate()
Returns
Perp()
[Version(1, 10, 0)]
public DiamondPoint Perp()
Returns
PerpDot(DiamondPoint)
[Version(1, 7, 0)]
public int PerpDot(DiamondPoint other)
Parameters
other
DiamondPoint
Returns
PointFromVertexAnchor()
public DiamondPoint PointFromVertexAnchor()
Returns
ReflectAboutX()
public DiamondPoint ReflectAboutX()
Returns
ReflectAboutY()
public DiamondPoint ReflectAboutY()
Returns
Rotate180()
public DiamondPoint Rotate180()
Returns
Rotate270()
public DiamondPoint Rotate270()
Returns
Rotate90()
public DiamondPoint Rotate90()
Returns
ScaleDown(int)
Scales this vector by the given amount.
public DiamondPoint ScaleDown(int r)
Parameters
r
int
Returns
Examples
v.ScaleUp(1)
v.ScaleUp(n) == v.ScaleUp(n - 1).Translate(v)
ScaleUp(int)
public DiamondPoint ScaleUp(int r)
Parameters
r
int
Returns
Subtract(DiamondPoint)
Subtracts the other point from this point, and returns the result.
public DiamondPoint Subtract(DiamondPoint other)
Parameters
other
DiamondPoint
Returns
ToString()
public override string ToString()
Returns
Translate(DiamondPoint)
This is a norm defined on the point, such that p1.Difference(p2).Abs()
is equal to
p1.DistanceFrom(p2)
.
public DiamondPoint Translate(DiamondPoint translation)
Parameters
translation
DiamondPoint
Returns
__GetColor__ReferenceImplementation(int, int, int)
Gives a coloring of the grid such that if a point p has color k, then all points p + m[ux, 0] + n[vx, vy] have the same color for any integers a and b.
More information anout grid colorings: http://gamelogic.co.za/2013/12/18/what-are-grid-colorings/
Since version 1.7
public int __GetColor__ReferenceImplementation(int ux, int vx, int vy)
Parameters
Returns
Operators
operator +(DiamondPoint, DiamondPoint)
public static DiamondPoint operator +(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator /(DiamondPoint, DiamondPoint)
public static DiamondPoint operator /(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator /(DiamondPoint, int)
public static DiamondPoint operator /(DiamondPoint point, int n)
Parameters
point
DiamondPointn
int
Returns
operator ==(DiamondPoint, DiamondPoint)
public static bool operator ==(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator !=(DiamondPoint, DiamondPoint)
public static bool operator !=(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator %(DiamondPoint, DiamondPoint)
public static DiamondPoint operator %(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator *(DiamondPoint, DiamondPoint)
public static DiamondPoint operator *(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator *(DiamondPoint, int)
public static DiamondPoint operator *(DiamondPoint point, int n)
Parameters
point
DiamondPointn
int
Returns
operator -(DiamondPoint, DiamondPoint)
public static DiamondPoint operator -(DiamondPoint point1, DiamondPoint point2)
Parameters
point1
DiamondPointpoint2
DiamondPoint
Returns
operator -(DiamondPoint)
public static DiamondPoint operator -(DiamondPoint point)
Parameters
point
DiamondPoint
Returns
operator +(DiamondPoint)
public static DiamondPoint operator +(DiamondPoint point)
Parameters
point
DiamondPoint