public static int getEdgeClockwiseDistance(HexEdgeDir from, HexEdgeDir to) { if (to >= from) { return(to - from); } return(6 + (to - from)); }
public static HexEdgeDir prevEdge(HexEdgeDir edgeDir, int distance) { while (distance > 0) { edgeDir = prevEdge(edgeDir); distance--; } return(edgeDir); }
public static HexEdgeDir nextEdge(HexEdgeDir edgeDir) { return((edgeDir == HexEdgeDir.TL) ? HexEdgeDir.TR : edgeDir + 1); }
public static HexCornerDir secondCornerOfEdge(HexEdgeDir edgeDir) { return(firstCornerOfEdge(nextEdge(edgeDir))); }
public static HexCornerDir firstCornerOfEdge(HexEdgeDir edgeDir) { return((HexCornerDir)edgeDir); }
public static HexEdgeDir opositeEdge(HexEdgeDir edgeDir) { return(nextEdge(nextEdge(nextEdge(edgeDir)))); }
public static HexEdgeDir prevEdge(HexEdgeDir edgeDir) { return((edgeDir == HexEdgeDir.TR) ? HexEdgeDir.TL : edgeDir - 1); }