Exemple #1
0
    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));
    }
Exemple #2
0
    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);
    }