Struct FlatTriPoint
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
Fields
EdgeDirections
public static readonly PointList<PointyRhombPoint>[] EdgeDirections
Field Value
MainDirections
public static readonly IEnumerable<FlatTriPoint>[] MainDirections
Field Value
SpliceCount
public const int SpliceCount = 2
Field Value
VertexDirections
public static readonly IEnumerable<PointyHexPoint>[] VertexDirections
Field Value
VertexFaceDirections
public static readonly PointList<PointyHexPoint>[] VertexFaceDirections
Field Value
Zero
public static readonly FlatTriPoint Zero
Field Value
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
I
Returns the splice idnex for this point.
public int I { get; }
Property Value
SpliceIndex
For spliced grids, this is the index of the splice.
For Uniform grids, this is always 0.
public int SpliceIndex { get; }
Property Value
X
Returns the X-coordinate of this point.
public int X { get; }
Property Value
Y
Returns the Y-coordinate of this point.
public int Y { get; }
Property Value
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
Methods
DecIndex(int)
public FlatTriPoint DecIndex(int n)
Parameters
n
int
Returns
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
Equals(FlatTriPoint)
public bool Equals(FlatTriPoint other)
Parameters
other
FlatTriPoint
Returns
Equals(object)
public override bool Equals(object other)
Parameters
other
object
Returns
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
Returns
GetColor2()
public int GetColor2()
Returns
GetColor4()
public int GetColor4()
Returns
GetEdgeAnchor()
public PointyRhombPoint GetEdgeAnchor()
Returns
GetEdges()
public IEnumerable<PointyRhombPoint> GetEdges()
Returns
GetHashCode()
public override int GetHashCode()
Returns
GetVertexAnchor()
public PointyHexPoint GetVertexAnchor()
Returns
GetVertexFaceAnchor()
public PointyHexPoint GetVertexFaceAnchor()
Returns
GetVertexFaces()
Get the coordinates of the faces that corresponds to this point treated as a vertex.
public IEnumerable<PointyHexPoint> GetVertexFaces()
Returns
GetVertices()
Returns the vertices of the point in the dual grid.
public IEnumerable<PointyHexPoint> GetVertices()
Returns
IncIndex(int)
public FlatTriPoint IncIndex(int n)
Parameters
n
int
Returns
InvertIndex()
public FlatTriPoint InvertIndex()
Returns
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
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
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
PointFromVertexAnchor()
public PointyHexPoint PointFromVertexAnchor()
Returns
ScaleDown(int)
public FlatTriPoint ScaleDown(int r)
Parameters
r
int
Returns
ScaleUp(int)
public FlatTriPoint ScaleUp(int r)
Parameters
r
int
Returns
Subtract(PointyHexPoint)
Translates this point by the negation of the given vector.
public FlatTriPoint Subtract(PointyHexPoint other)
Parameters
other
PointyHexPoint
Returns
ToString()
public override string ToString()
Returns
Translate(PointyHexPoint)
Translate this point by the given vector.
public FlatTriPoint Translate(PointyHexPoint other)
Parameters
other
PointyHexPoint
Returns
Operators
operator +(FlatTriPoint, PointyHexPoint)
public static FlatTriPoint operator +(FlatTriPoint point1, PointyHexPoint point2)
Parameters
point1
FlatTriPointpoint2
PointyHexPoint
Returns
operator /(FlatTriPoint, int)
public static FlatTriPoint operator /(FlatTriPoint point, int n)
Parameters
point
FlatTriPointn
int
Returns
operator ==(FlatTriPoint, FlatTriPoint)
public static bool operator ==(FlatTriPoint point1, FlatTriPoint point2)
Parameters
point1
FlatTriPointpoint2
FlatTriPoint
Returns
operator !=(FlatTriPoint, FlatTriPoint)
public static bool operator !=(FlatTriPoint point1, FlatTriPoint point2)
Parameters
point1
FlatTriPointpoint2
FlatTriPoint
Returns
operator *(FlatTriPoint, int)
public static FlatTriPoint operator *(FlatTriPoint point, int n)
Parameters
point
FlatTriPointn
int
Returns
operator -(FlatTriPoint, PointyHexPoint)
public static FlatTriPoint operator -(FlatTriPoint point1, PointyHexPoint point2)
Parameters
point1
FlatTriPointpoint2
PointyHexPoint
Returns
operator -(FlatTriPoint)
public static FlatTriPoint operator -(FlatTriPoint point)
Parameters
point
FlatTriPoint
Returns
operator +(FlatTriPoint)
public static FlatTriPoint operator +(FlatTriPoint point)
Parameters
point
FlatTriPoint