Table of Contents

Struct FlatTriPoint

Namespace
Gamelogic.Grids
Assembly
Assembly-CSharp.dll

A struct that represents a point of a FlatTriGrid.

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

Constructors

FlatTriPoint(int, int, int)

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

Parameters

x int
y int
index int

Fields

EdgeDirections

public static readonly PointList<PointyRhombPoint>[] EdgeDirections

Field Value

PointList<PointyRhombPoint>[]

MainDirections

public static readonly IEnumerable<FlatTriPoint>[] MainDirections

Field Value

IEnumerable<FlatTriPoint>[]

SpliceCount

public const int SpliceCount = 2

Field Value

int

VertexDirections

public static readonly IEnumerable<PointyHexPoint>[] VertexDirections

Field Value

IEnumerable<PointyHexPoint>[]

VertexFaceDirections

public static readonly PointList<PointyHexPoint>[] VertexFaceDirections

Field Value

PointList<PointyHexPoint>[]

Zero

public static readonly FlatTriPoint Zero

Field Value

FlatTriPoint

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

Parameters

n int

Returns

FlatTriPoint

DistanceFrom(FlatTriPoint)

The lattice distance between two points.

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

public int DistanceFrom(FlatTriPoint other)

Parameters

other FlatTriPoint

Returns

int

Equals(FlatTriPoint)

public bool Equals(FlatTriPoint other)

Parameters

other FlatTriPoint

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 PointyRhombPoint GetEdgeAnchor()

Returns

PointyRhombPoint

GetEdges()

public IEnumerable<PointyRhombPoint> GetEdges()

Returns

IEnumerable<PointyRhombPoint>

GetHashCode()

public override int GetHashCode()

Returns

int

GetVertexAnchor()

public PointyHexPoint GetVertexAnchor()

Returns

PointyHexPoint

GetVertexFaceAnchor()

public PointyHexPoint GetVertexFaceAnchor()

Returns

PointyHexPoint

GetVertexFaces()

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

public IEnumerable<PointyHexPoint> GetVertexFaces()

Returns

IEnumerable<PointyHexPoint>

GetVertices()

Returns the vertices of the point in the dual grid.

public IEnumerable<PointyHexPoint> GetVertices()

Returns

IEnumerable<PointyHexPoint>

IncIndex(int)

public FlatTriPoint IncIndex(int n)

Parameters

n int

Returns

FlatTriPoint

InvertIndex()

public FlatTriPoint InvertIndex()

Returns

FlatTriPoint

MoveBackBy(FlatTriPoint)

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

public FlatTriPoint MoveBackBy(FlatTriPoint other)

Parameters

other FlatTriPoint

Returns

FlatTriPoint

Remarks

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

MoveBy(FlatTriPoint)

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

public FlatTriPoint MoveBy(FlatTriPoint other)

Parameters

other FlatTriPoint

Returns

FlatTriPoint

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

Returns

FlatTriPoint

PointFromVertexAnchor()

public PointyHexPoint PointFromVertexAnchor()

Returns

PointyHexPoint

ScaleDown(int)

public FlatTriPoint ScaleDown(int r)

Parameters

r int

Returns

FlatTriPoint

ScaleUp(int)

public FlatTriPoint ScaleUp(int r)

Parameters

r int

Returns

FlatTriPoint

Subtract(PointyHexPoint)

Translates this point by the negation of the given vector.

public FlatTriPoint Subtract(PointyHexPoint other)

Parameters

other PointyHexPoint

Returns

FlatTriPoint

ToString()

public override string ToString()

Returns

string

Translate(PointyHexPoint)

Translate this point by the given vector.

public FlatTriPoint Translate(PointyHexPoint other)

Parameters

other PointyHexPoint

Returns

FlatTriPoint

Operators

operator +(FlatTriPoint, PointyHexPoint)

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

Parameters

point1 FlatTriPoint
point2 PointyHexPoint

Returns

FlatTriPoint

operator /(FlatTriPoint, int)

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

Parameters

point FlatTriPoint
n int

Returns

FlatTriPoint

operator ==(FlatTriPoint, FlatTriPoint)

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

Parameters

point1 FlatTriPoint
point2 FlatTriPoint

Returns

bool

operator !=(FlatTriPoint, FlatTriPoint)

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

Parameters

point1 FlatTriPoint
point2 FlatTriPoint

Returns

bool

operator *(FlatTriPoint, int)

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

Parameters

point FlatTriPoint
n int

Returns

FlatTriPoint

operator -(FlatTriPoint, PointyHexPoint)

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

Parameters

point1 FlatTriPoint
point2 PointyHexPoint

Returns

FlatTriPoint

operator -(FlatTriPoint)

public static FlatTriPoint operator -(FlatTriPoint point)

Parameters

point FlatTriPoint

Returns

FlatTriPoint

operator +(FlatTriPoint)

public static FlatTriPoint operator +(FlatTriPoint point)

Parameters

point FlatTriPoint

Returns

FlatTriPoint