Struct PointyTriPoint
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
Fields
EdgeDirections
public static readonly PointList<FlatRhombPoint>[] EdgeDirections
Field Value
MainDirections
public static readonly IEnumerable<PointyTriPoint>[] MainDirections
Field Value
SpliceCount
public const int SpliceCount = 2
Field Value
VertexDirections
I want it private, but the other part of the class needs it
public static readonly IEnumerable<FlatHexPoint>[] VertexDirections
Field Value
VertexFaceDirections
public static readonly PointList<FlatHexPoint>[] VertexFaceDirections
Field Value
Zero
public static readonly PointyTriPoint Zero
Field Value
Properties
AsHexPoint
public PointyHexPoint AsHexPoint { get; }
Property Value
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
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 PointyTriPoint DecIndex(int n)
Parameters
n
int
Returns
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
Equals(PointyTriPoint)
public bool Equals(PointyTriPoint other)
Parameters
other
PointyTriPoint
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 FlatRhombPoint GetEdgeAnchor()
Returns
GetEdges()
public IEnumerable<FlatRhombPoint> GetEdges()
Returns
GetHashCode()
public override int GetHashCode()
Returns
GetVertexAnchor()
public FlatHexPoint GetVertexAnchor()
Returns
GetVertexFaceAnchor()
public FlatHexPoint GetVertexFaceAnchor()
Returns
GetVertexFaces()
Get the coordinates of the faces that corresponds to this point treated as a vertex.
public IEnumerable<FlatHexPoint> GetVertexFaces()
Returns
GetVertices()
Returns the vertices of the point in the dual grid.
public IEnumerable<FlatHexPoint> GetVertices()
Returns
IncIndex(int)
public PointyTriPoint IncIndex(int n)
Parameters
n
int
Returns
InvertIndex()
public PointyTriPoint InvertIndex()
Returns
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
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
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
PointFromVertexAnchor()
public FlatHexPoint PointFromVertexAnchor()
Returns
ScaleDown(int)
public PointyTriPoint ScaleDown(int r)
Parameters
r
int
Returns
ScaleUp(int)
public PointyTriPoint ScaleUp(int r)
Parameters
r
int
Returns
Subtract(FlatHexPoint)
Translates this point by the negation of the given vector.
public PointyTriPoint Subtract(FlatHexPoint other)
Parameters
other
FlatHexPoint
Returns
ToString()
public override string ToString()
Returns
Translate(FlatHexPoint)
Translate this point by the given vector.
public PointyTriPoint Translate(FlatHexPoint other)
Parameters
other
FlatHexPoint
Returns
Operators
operator +(PointyTriPoint, FlatHexPoint)
public static PointyTriPoint operator +(PointyTriPoint point1, FlatHexPoint point2)
Parameters
point1
PointyTriPointpoint2
FlatHexPoint
Returns
operator /(PointyTriPoint, int)
public static PointyTriPoint operator /(PointyTriPoint point, int n)
Parameters
point
PointyTriPointn
int
Returns
operator ==(PointyTriPoint, PointyTriPoint)
public static bool operator ==(PointyTriPoint point1, PointyTriPoint point2)
Parameters
point1
PointyTriPointpoint2
PointyTriPoint
Returns
operator !=(PointyTriPoint, PointyTriPoint)
public static bool operator !=(PointyTriPoint point1, PointyTriPoint point2)
Parameters
point1
PointyTriPointpoint2
PointyTriPoint
Returns
operator *(PointyTriPoint, int)
public static PointyTriPoint operator *(PointyTriPoint point, int n)
Parameters
point
PointyTriPointn
int
Returns
operator -(PointyTriPoint, FlatHexPoint)
public static PointyTriPoint operator -(PointyTriPoint point1, FlatHexPoint point2)
Parameters
point1
PointyTriPointpoint2
FlatHexPoint
Returns
operator -(PointyTriPoint)
public static PointyTriPoint operator -(PointyTriPoint point)
Parameters
point
PointyTriPoint
Returns
operator +(PointyTriPoint)
public static PointyTriPoint operator +(PointyTriPoint point)
Parameters
point
PointyTriPoint