Table of Contents

Struct FlatRhombPoint

Namespace
Gamelogic.Grids
Assembly
Assembly-CSharp.dll

A struct that represents a point of a FlatRhombGrid.

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

Constructors

FlatRhombPoint(int, int, int)

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

Parameters

x int
y int
index int

Fields

HexEdgeFaceDirections

public static readonly IList<IEnumerable<FlatHexPoint>> HexEdgeFaceDirections

Field Value

IList<IEnumerable<FlatHexPoint>>

MainDirections

public static readonly IEnumerable<FlatRhombPoint>[] MainDirections

Field Value

IEnumerable<FlatRhombPoint>[]

SpliceCount

public const int SpliceCount = 3

Field Value

int

TriEdgeFaceDirections

public static readonly IList<IEnumerable<PointyTriPoint>> TriEdgeFaceDirections

Field Value

IList<IEnumerable<PointyTriPoint>>

Zero

public static readonly FlatRhombPoint Zero

Field Value

FlatRhombPoint

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 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

Methods

DecIndex(int)

public FlatRhombPoint DecIndex(int n)

Parameters

n int

Returns

FlatRhombPoint

DistanceFrom(FlatRhombPoint)

The lattice distance between two points.

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

public int DistanceFrom(FlatRhombPoint other)

Parameters

other FlatRhombPoint

Returns

int

Equals(FlatRhombPoint)

public bool Equals(FlatRhombPoint other)

Parameters

other FlatRhombPoint

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 FlatRhombPoint IncIndex(int n)

Parameters

n int

Returns

FlatRhombPoint

InvertIndex()

public FlatRhombPoint InvertIndex()

Returns

FlatRhombPoint

MoveBackBy(FlatRhombPoint)

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

public FlatRhombPoint MoveBackBy(FlatRhombPoint other)

Parameters

other FlatRhombPoint

Returns

FlatRhombPoint

Remarks

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

MoveBy(FlatRhombPoint)

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

public FlatRhombPoint MoveBy(FlatRhombPoint other)

Parameters

other FlatRhombPoint

Returns

FlatRhombPoint

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

Returns

FlatRhombPoint

ScaleDown(int)

public FlatRhombPoint ScaleDown(int r)

Parameters

r int

Returns

FlatRhombPoint

ScaleUp(int)

public FlatRhombPoint ScaleUp(int r)

Parameters

r int

Returns

FlatRhombPoint

Subtract(FlatHexPoint)

Translates this point by the negation of the given vector.

public FlatRhombPoint Subtract(FlatHexPoint other)

Parameters

other FlatHexPoint

Returns

FlatRhombPoint

ToString()

public override string ToString()

Returns

string

Translate(FlatHexPoint)

Translate this point by the given vector.

public FlatRhombPoint Translate(FlatHexPoint other)

Parameters

other FlatHexPoint

Returns

FlatRhombPoint

Operators

operator +(FlatRhombPoint, FlatHexPoint)

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

Parameters

point1 FlatRhombPoint
point2 FlatHexPoint

Returns

FlatRhombPoint

operator /(FlatRhombPoint, int)

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

Parameters

point FlatRhombPoint
n int

Returns

FlatRhombPoint

operator ==(FlatRhombPoint, FlatRhombPoint)

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

Parameters

point1 FlatRhombPoint
point2 FlatRhombPoint

Returns

bool

operator !=(FlatRhombPoint, FlatRhombPoint)

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

Parameters

point1 FlatRhombPoint
point2 FlatRhombPoint

Returns

bool

operator *(FlatRhombPoint, int)

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

Parameters

point FlatRhombPoint
n int

Returns

FlatRhombPoint

operator -(FlatRhombPoint, FlatHexPoint)

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

Parameters

point1 FlatRhombPoint
point2 FlatHexPoint

Returns

FlatRhombPoint

operator -(FlatRhombPoint)

public static FlatRhombPoint operator -(FlatRhombPoint point)

Parameters

point FlatRhombPoint

Returns

FlatRhombPoint

operator +(FlatRhombPoint)

public static FlatRhombPoint operator +(FlatRhombPoint point)

Parameters

point FlatRhombPoint

Returns

FlatRhombPoint