Table of Contents

Struct DiamondPoint

Namespace
Gamelogic.Grids
Assembly
Assembly-CSharp.dll

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

x int
y int

Fields

DiagonalDirections

public static readonly PointList<DiamondPoint> DiagonalDirections

Field Value

PointList<DiamondPoint>

East

public static readonly DiamondPoint East

Field Value

DiamondPoint

EdgeDirections

public static readonly IEnumerable<RectPoint> EdgeDirections

Field Value

IEnumerable<RectPoint>

EdgeFaceDirections

public static readonly List<IEnumerable<RectPoint>> EdgeFaceDirections

Field Value

List<IEnumerable<RectPoint>>

MainAndDiagonalDirections

public static readonly PointList<DiamondPoint> MainAndDiagonalDirections

Field Value

PointList<DiamondPoint>

MainDirections

public static readonly PointList<DiamondPoint> MainDirections

Field Value

PointList<DiamondPoint>

North

public static readonly DiamondPoint North

Field Value

DiamondPoint

NorthEast

public static readonly DiamondPoint NorthEast

Field Value

DiamondPoint

NorthWest

public static readonly DiamondPoint NorthWest

Field Value

DiamondPoint

South

public static readonly DiamondPoint South

Field Value

DiamondPoint

SouthEast

public static readonly DiamondPoint SouthEast

Field Value

DiamondPoint

SouthWest

public static readonly DiamondPoint SouthWest

Field Value

DiamondPoint

VertexDirections

public static readonly IEnumerable<DiamondPoint> VertexDirections

Field Value

IEnumerable<DiamondPoint>

VertexFaceDirections

public static readonly IEnumerable<DiamondPoint> VertexFaceDirections

Field Value

IEnumerable<DiamondPoint>

West

public static readonly DiamondPoint West

Field Value

DiamondPoint

Zero

The zero point (0, 0).

public static readonly DiamondPoint Zero

Field Value

DiamondPoint

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

DiamondPoint

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

int

SpliceIndex

For spliced grids, this is the index of the splice.

For Uniform grids, this is always 0.

public int SpliceIndex { get; }

Property Value

int

X

The x-coordinate of this point. This need to be in XML

public int X { get; }

Property Value

int

Y

The y-coordinate of this point.

public int Y { get; }

Property Value

int

Methods

DistanceFrom(DiamondPoint)

The lattice distance from this point to the other.

public int DistanceFrom(DiamondPoint other)

Parameters

other DiamondPoint

Returns

int

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

DiamondPoint

Dot(DiamondPoint)

[Version(1, 7, 0)]
public int Dot(DiamondPoint other)

Parameters

other DiamondPoint

Returns

int

Equals(DiamondPoint)

public bool Equals(DiamondPoint other)

Parameters

other DiamondPoint

Returns

bool

Equals(object)

public override bool Equals(object other)

Parameters

other object

Returns

bool

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

ux int
vx int
vy int

Returns

int

GetColor1_1()

public int GetColor1_1()

Returns

int

GetColor1_2()

public int GetColor1_2()

Returns

int

GetColor4()

public int GetColor4()

Returns

int

GetEdgeAnchor()

public RectPoint GetEdgeAnchor()

Returns

RectPoint

GetEdgeFaces()

Get the coordinates of the faces that corresponds to this point treated as an edge.

public IEnumerable<RectPoint> GetEdgeFaces()

Returns

IEnumerable<RectPoint>

GetEdges()

public IEnumerable<RectPoint> GetEdges()

Returns

IEnumerable<RectPoint>

GetHashCode()

public override int GetHashCode()

Returns

int

GetVertexAnchor()

public DiamondPoint GetVertexAnchor()

Returns

DiamondPoint

GetVertexFaces()

Get the coordinates of the faces that corresponds to this point treated as a vertex.

public IEnumerable<DiamondPoint> GetVertexFaces()

Returns

IEnumerable<DiamondPoint>

GetVertices()

Returns the vertices of the point in the dual grid.

public IEnumerable<DiamondPoint> GetVertices()

Returns

IEnumerable<DiamondPoint>

Magnitude()

public int Magnitude()

Returns

int

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

DiamondPoint

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

DiamondPoint

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

DiamondPoint

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

DiamondPoint

Negate()

Returns a new point with the vector component negated.

public DiamondPoint Negate()

Returns

DiamondPoint

Perp()

[Version(1, 10, 0)]
public DiamondPoint Perp()

Returns

DiamondPoint

PerpDot(DiamondPoint)

[Version(1, 7, 0)]
public int PerpDot(DiamondPoint other)

Parameters

other DiamondPoint

Returns

int

PointFromVertexAnchor()

public DiamondPoint PointFromVertexAnchor()

Returns

DiamondPoint

ReflectAboutX()

public DiamondPoint ReflectAboutX()

Returns

DiamondPoint

ReflectAboutY()

public DiamondPoint ReflectAboutY()

Returns

DiamondPoint

Rotate180()

public DiamondPoint Rotate180()

Returns

DiamondPoint

Rotate270()

public DiamondPoint Rotate270()

Returns

DiamondPoint

Rotate90()

public DiamondPoint Rotate90()

Returns

DiamondPoint

ScaleDown(int)

Scales this vector by the given amount.

public DiamondPoint ScaleDown(int r)

Parameters

r int

Returns

DiamondPoint

Examples

v.ScaleUp(1)
v.ScaleUp(n) ==  v.ScaleUp(n - 1).Translate(v)

ScaleUp(int)

public DiamondPoint ScaleUp(int r)

Parameters

r int

Returns

DiamondPoint

Subtract(DiamondPoint)

Subtracts the other point from this point, and returns the result.

public DiamondPoint Subtract(DiamondPoint other)

Parameters

other DiamondPoint

Returns

DiamondPoint

ToString()

public override string ToString()

Returns

string

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

DiamondPoint

__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

ux int
vx int
vy int

Returns

int

Operators

operator +(DiamondPoint, DiamondPoint)

public static DiamondPoint operator +(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

DiamondPoint

operator /(DiamondPoint, DiamondPoint)

public static DiamondPoint operator /(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

DiamondPoint

operator /(DiamondPoint, int)

public static DiamondPoint operator /(DiamondPoint point, int n)

Parameters

point DiamondPoint
n int

Returns

DiamondPoint

operator ==(DiamondPoint, DiamondPoint)

public static bool operator ==(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

bool

operator !=(DiamondPoint, DiamondPoint)

public static bool operator !=(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

bool

operator %(DiamondPoint, DiamondPoint)

public static DiamondPoint operator %(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

DiamondPoint

operator *(DiamondPoint, DiamondPoint)

public static DiamondPoint operator *(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

DiamondPoint

operator *(DiamondPoint, int)

public static DiamondPoint operator *(DiamondPoint point, int n)

Parameters

point DiamondPoint
n int

Returns

DiamondPoint

operator -(DiamondPoint, DiamondPoint)

public static DiamondPoint operator -(DiamondPoint point1, DiamondPoint point2)

Parameters

point1 DiamondPoint
point2 DiamondPoint

Returns

DiamondPoint

operator -(DiamondPoint)

public static DiamondPoint operator -(DiamondPoint point)

Parameters

point DiamondPoint

Returns

DiamondPoint

operator +(DiamondPoint)

public static DiamondPoint operator +(DiamondPoint point)

Parameters

point DiamondPoint

Returns

DiamondPoint