Table of Contents

Struct CairoPoint

Namespace
Gamelogic.Grids
Assembly
Assembly-CSharp.dll

A coordinate for a cell in a CiaroGrid. The base point is a pointy hex point, and indices run from 0 to 3.

[Version(1, 2, 0)]
[Serializable]
public struct CairoPoint : ISplicedPoint<CairoPoint, PointyHexPoint>, IGridPoint<CairoPoint>, IEquatable<CairoPoint>, IGridPoint, ISplicedVectorPoint<CairoPoint, PointyHexPoint>
Implements
Inherited Members
Extension Methods

Constructors

CairoPoint(int, int, int)

public CairoPoint(int x, int y, int index)

Parameters

x int
y int
index int

Fields

MainDirections

public static readonly IEnumerable<CairoPoint>[] MainDirections

Field Value

IEnumerable<CairoPoint>[]

SpliceCount

public const int SpliceCount = 4

Field Value

int

Zero

public static readonly CairoPoint Zero

Field Value

CairoPoint

Properties

BasePoint

Why is this public? - Convenience - Algorithm Design Otherwise the user will just make a new basepoint in any case, and perhaps make a mistake.

public PointyHexPoint BasePoint { get; }

Property Value

PointyHexPoint

I

Returns the splice idnex for this point.

public int I { 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

Returns the X-coordinate of this point.

public int X { get; }

Property Value

int

Y

Returns the Y-coordinate of this point.

public int Y { get; }

Property Value

int

Z

This is a redundant coordinate that is useful for certain algorithms and calculation. The coordinates of a triangle satsify this identity: X + Y + Z + I = 0.

public int Z { get; }

Property Value

int

Methods

DecIndex(int)

public CairoPoint DecIndex(int n)

Parameters

n int

Returns

CairoPoint

DistanceFrom(CairoPoint)

The lattice distance between two points.

Two points should have a distance of 1 if and only if they are neighbors.

public int DistanceFrom(CairoPoint other)

Parameters

other CairoPoint

Returns

int

Equals(CairoPoint)

public bool Equals(CairoPoint other)

Parameters

other CairoPoint

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 | 0] + n[vx, vy | 0] have the same color for any integers a and b.

Since version 1.7

public int GetColor(int ux, int vx, int vy)

Parameters

ux int
vx int
vy int

Returns

int

GetColor12()

public int GetColor12()

Returns

int

GetHashCode()

public override int GetHashCode()

Returns

int

IncIndex(int)

public CairoPoint IncIndex(int n)

Parameters

n int

Returns

CairoPoint

InvertIndex()

public CairoPoint InvertIndex()

Returns

CairoPoint

MoveBackBy(CairoPoint)

If a spliced vectors u and v has base vector B and index I

public CairoPoint MoveBackBy(CairoPoint other)

Parameters

other CairoPoint

Returns

CairoPoint

Remarks

new SplicedVector(u.B.Subtract(v.B), (SpliceCount + u.I - v.I) % SpliceCount))

MoveBy(CairoPoint)

If a spliced vectors u and v has base vector B and index I,

public CairoPoint MoveBy(CairoPoint other)

Parameters

other CairoPoint

Returns

CairoPoint

Remarks

This operation is the same as

new SplicedVector(u.B.Translate(v.B), (u.I + v.I) % SpliceCount))

Negate()

Returns a new point with the vector component negated.

public CairoPoint Negate()

Returns

CairoPoint

ScaleDown(int)

public CairoPoint ScaleDown(int r)

Parameters

r int

Returns

CairoPoint

ScaleUp(int)

public CairoPoint ScaleUp(int r)

Parameters

r int

Returns

CairoPoint

Subtract(PointyHexPoint)

Translates this point by the negation of the given vector.

public CairoPoint Subtract(PointyHexPoint other)

Parameters

other PointyHexPoint

Returns

CairoPoint

ToString()

public override string ToString()

Returns

string

Translate(PointyHexPoint)

Translate this point by the given vector.

public CairoPoint Translate(PointyHexPoint other)

Parameters

other PointyHexPoint

Returns

CairoPoint

Operators

operator +(CairoPoint, PointyHexPoint)

public static CairoPoint operator +(CairoPoint point1, PointyHexPoint point2)

Parameters

point1 CairoPoint
point2 PointyHexPoint

Returns

CairoPoint

operator /(CairoPoint, int)

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

Parameters

point CairoPoint
n int

Returns

CairoPoint

operator ==(CairoPoint, CairoPoint)

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

Parameters

point1 CairoPoint
point2 CairoPoint

Returns

bool

operator !=(CairoPoint, CairoPoint)

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

Parameters

point1 CairoPoint
point2 CairoPoint

Returns

bool

operator *(CairoPoint, int)

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

Parameters

point CairoPoint
n int

Returns

CairoPoint

operator -(CairoPoint, PointyHexPoint)

public static CairoPoint operator -(CairoPoint point1, PointyHexPoint point2)

Parameters

point1 CairoPoint
point2 PointyHexPoint

Returns

CairoPoint

operator -(CairoPoint)

public static CairoPoint operator -(CairoPoint point)

Parameters

point CairoPoint

Returns

CairoPoint

operator +(CairoPoint)

public static CairoPoint operator +(CairoPoint point)

Parameters

point CairoPoint

Returns

CairoPoint