float Distance(offSetCords nuo, offSetCords iki) { var nuoCC = oddr_to_cube(nuo.x, nuo.y); var ikiCC = oddr_to_cube(iki.x, iki.y); return(cube_distance(nuoCC, ikiCC)); }
List <offSetCords> Range(offSetCords nuo, int N) { List <offSetCords> result = new List <offSetCords>(); /* * for each -N ≤ x ≤ +N: * for each -N ≤ y ≤ +N: * for each -N ≤ z ≤ +N: * if x + y + z = 0: * results.append(cube_add(center, Cube(x, y, z))) */ var offSetCC = oddr_to_cube(nuo.x, nuo.y); for (int x = -N; x <= N; x++) { for (int y = -N; y <= N; y++) { for (int z = -N; z <= N; z++) { if (x + y + z == 0) { var cc = new cubeCords(x + offSetCC.x, y + offSetCC.y, z + offSetCC.z); result.Add(cube_to_oddr(cc)); } } } } return(result); }