Struct FlatRhombPoint
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
Fields
HexEdgeFaceDirections
public static readonly IList<IEnumerable<FlatHexPoint>> HexEdgeFaceDirections
Field Value
MainDirections
public static readonly IEnumerable<FlatRhombPoint>[] MainDirections
Field Value
SpliceCount
public const int SpliceCount = 3
Field Value
TriEdgeFaceDirections
public static readonly IList<IEnumerable<PointyTriPoint>> TriEdgeFaceDirections
Field Value
Zero
public static readonly FlatRhombPoint 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 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
Methods
DecIndex(int)
public FlatRhombPoint DecIndex(int n)
Parameters
n
int
Returns
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
Equals(FlatRhombPoint)
public bool Equals(FlatRhombPoint other)
Parameters
other
FlatRhombPoint
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
GetColor12()
public int GetColor12()
Returns
GetHashCode()
public override int GetHashCode()
Returns
IncIndex(int)
public FlatRhombPoint IncIndex(int n)
Parameters
n
int
Returns
InvertIndex()
public FlatRhombPoint InvertIndex()
Returns
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
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
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
ScaleDown(int)
public FlatRhombPoint ScaleDown(int r)
Parameters
r
int
Returns
ScaleUp(int)
public FlatRhombPoint ScaleUp(int r)
Parameters
r
int
Returns
Subtract(FlatHexPoint)
Translates this point by the negation of the given vector.
public FlatRhombPoint Subtract(FlatHexPoint other)
Parameters
other
FlatHexPoint
Returns
ToString()
public override string ToString()
Returns
Translate(FlatHexPoint)
Translate this point by the given vector.
public FlatRhombPoint Translate(FlatHexPoint other)
Parameters
other
FlatHexPoint
Returns
Operators
operator +(FlatRhombPoint, FlatHexPoint)
public static FlatRhombPoint operator +(FlatRhombPoint point1, FlatHexPoint point2)
Parameters
point1
FlatRhombPointpoint2
FlatHexPoint
Returns
operator /(FlatRhombPoint, int)
public static FlatRhombPoint operator /(FlatRhombPoint point, int n)
Parameters
point
FlatRhombPointn
int
Returns
operator ==(FlatRhombPoint, FlatRhombPoint)
public static bool operator ==(FlatRhombPoint point1, FlatRhombPoint point2)
Parameters
point1
FlatRhombPointpoint2
FlatRhombPoint
Returns
operator !=(FlatRhombPoint, FlatRhombPoint)
public static bool operator !=(FlatRhombPoint point1, FlatRhombPoint point2)
Parameters
point1
FlatRhombPointpoint2
FlatRhombPoint
Returns
operator *(FlatRhombPoint, int)
public static FlatRhombPoint operator *(FlatRhombPoint point, int n)
Parameters
point
FlatRhombPointn
int
Returns
operator -(FlatRhombPoint, FlatHexPoint)
public static FlatRhombPoint operator -(FlatRhombPoint point1, FlatHexPoint point2)
Parameters
point1
FlatRhombPointpoint2
FlatHexPoint
Returns
operator -(FlatRhombPoint)
public static FlatRhombPoint operator -(FlatRhombPoint point)
Parameters
point
FlatRhombPoint
Returns
operator +(FlatRhombPoint)
public static FlatRhombPoint operator +(FlatRhombPoint point)
Parameters
point
FlatRhombPoint