Table of Contents

Struct PointyTriPoint

Namespace
Gamelogic.Grids
Assembly
Assembly-CSharp.dll

A struct that represents a point of a PointyTriGrid.

[Version(1, 0, 0)]
[Serializable]
public struct PointyTriPoint : ISupportsVertices<FlatHexPoint>, ISupportsEdges<FlatRhombPoint>, IVertex<FlatHexPoint>, ISplicedPoint<PointyTriPoint, FlatHexPoint>, IGridPoint<PointyTriPoint>, IEquatable<PointyTriPoint>, IGridPoint, ISplicedVectorPoint<PointyTriPoint, FlatHexPoint>
Implements
Inherited Members
Extension Methods

Constructors

PointyTriPoint(int, int, int)

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

Parameters

x int
y int
index int

Fields

EdgeDirections

public static readonly PointList<FlatRhombPoint>[] EdgeDirections

Field Value

PointList<FlatRhombPoint>[]

MainDirections

public static readonly IEnumerable<PointyTriPoint>[] MainDirections

Field Value

IEnumerable<PointyTriPoint>[]

SpliceCount

public const int SpliceCount = 2

Field Value

int

VertexDirections

I want it private, but the other part of the class needs it

public static readonly IEnumerable<FlatHexPoint>[] VertexDirections

Field Value

IEnumerable<FlatHexPoint>[]

VertexFaceDirections

public static readonly PointList<FlatHexPoint>[] VertexFaceDirections

Field Value

PointList<FlatHexPoint>[]

Zero

public static readonly PointyTriPoint Zero

Field Value

PointyTriPoint

Properties

AsHexPoint

public PointyHexPoint AsHexPoint { get; }

Property Value

PointyHexPoint

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 FlatHexPoint BasePoint { get; }

Property Value

FlatHexPoint

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 PointyTriPoint DecIndex(int n)

Parameters

n int

Returns

PointyTriPoint

DistanceFrom(PointyTriPoint)

The lattice distance between two points.

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

public int DistanceFrom(PointyTriPoint other)

Parameters

other PointyTriPoint

Returns

int

Equals(PointyTriPoint)

public bool Equals(PointyTriPoint other)

Parameters

other PointyTriPoint

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

GetColor2()

public int GetColor2()

Returns

int

GetColor4()

public int GetColor4()

Returns

int

GetEdgeAnchor()

public FlatRhombPoint GetEdgeAnchor()

Returns

FlatRhombPoint

GetEdges()

public IEnumerable<FlatRhombPoint> GetEdges()

Returns

IEnumerable<FlatRhombPoint>

GetHashCode()

public override int GetHashCode()

Returns

int

GetVertexAnchor()

public FlatHexPoint GetVertexAnchor()

Returns

FlatHexPoint

GetVertexFaceAnchor()

public FlatHexPoint GetVertexFaceAnchor()

Returns

FlatHexPoint

GetVertexFaces()

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

public IEnumerable<FlatHexPoint> GetVertexFaces()

Returns

IEnumerable<FlatHexPoint>

GetVertices()

Returns the vertices of the point in the dual grid.

public IEnumerable<FlatHexPoint> GetVertices()

Returns

IEnumerable<FlatHexPoint>

IncIndex(int)

public PointyTriPoint IncIndex(int n)

Parameters

n int

Returns

PointyTriPoint

InvertIndex()

public PointyTriPoint InvertIndex()

Returns

PointyTriPoint

MoveBackBy(PointyTriPoint)

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

public PointyTriPoint MoveBackBy(PointyTriPoint other)

Parameters

other PointyTriPoint

Returns

PointyTriPoint

Remarks

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

MoveBy(PointyTriPoint)

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

public PointyTriPoint MoveBy(PointyTriPoint other)

Parameters

other PointyTriPoint

Returns

PointyTriPoint

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 PointyTriPoint Negate()

Returns

PointyTriPoint

PointFromVertexAnchor()

public FlatHexPoint PointFromVertexAnchor()

Returns

FlatHexPoint

ScaleDown(int)

public PointyTriPoint ScaleDown(int r)

Parameters

r int

Returns

PointyTriPoint

ScaleUp(int)

public PointyTriPoint ScaleUp(int r)

Parameters

r int

Returns

PointyTriPoint

Subtract(FlatHexPoint)

Translates this point by the negation of the given vector.

public PointyTriPoint Subtract(FlatHexPoint other)

Parameters

other FlatHexPoint

Returns

PointyTriPoint

ToString()

public override string ToString()

Returns

string

Translate(FlatHexPoint)

Translate this point by the given vector.

public PointyTriPoint Translate(FlatHexPoint other)

Parameters

other FlatHexPoint

Returns

PointyTriPoint

Operators

operator +(PointyTriPoint, FlatHexPoint)

public static PointyTriPoint operator +(PointyTriPoint point1, FlatHexPoint point2)

Parameters

point1 PointyTriPoint
point2 FlatHexPoint

Returns

PointyTriPoint

operator /(PointyTriPoint, int)

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

Parameters

point PointyTriPoint
n int

Returns

PointyTriPoint

operator ==(PointyTriPoint, PointyTriPoint)

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

Parameters

point1 PointyTriPoint
point2 PointyTriPoint

Returns

bool

operator !=(PointyTriPoint, PointyTriPoint)

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

Parameters

point1 PointyTriPoint
point2 PointyTriPoint

Returns

bool

operator *(PointyTriPoint, int)

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

Parameters

point PointyTriPoint
n int

Returns

PointyTriPoint

operator -(PointyTriPoint, FlatHexPoint)

public static PointyTriPoint operator -(PointyTriPoint point1, FlatHexPoint point2)

Parameters

point1 PointyTriPoint
point2 FlatHexPoint

Returns

PointyTriPoint

operator -(PointyTriPoint)

public static PointyTriPoint operator -(PointyTriPoint point)

Parameters

point PointyTriPoint

Returns

PointyTriPoint

operator +(PointyTriPoint)

public static PointyTriPoint operator +(PointyTriPoint point)

Parameters

point PointyTriPoint

Returns

PointyTriPoint