Esempio n. 1
0
    public static CubeFraction CubeLerp( Cube a, Cube b, float t )
    {
        CubeFraction af = new CubeFraction((float)a.x, (float)a.y, (float)a.z);
        CubeFraction bf = new CubeFraction((float)b.x, (float)b.y, (float)b.z);

        return new CubeFraction(af.x + (bf.x - af.x) * t,
                             af.y + (bf.y - af.y) * t,
                             af.z + (bf.z - af.z) * t);
    }
Esempio n. 2
0
    public static Cube CubeRound(CubeFraction cubePoint)
    {
        float rx = Mathf.Round(cubePoint.x);
        float ry = Mathf.Round(cubePoint.y);
        float rz = Mathf.Round(cubePoint.z);

        float x_diff = Mathf.Abs(rx - cubePoint.x);
        float y_diff = Mathf.Abs(ry - cubePoint.y);
        float z_diff = Mathf.Abs(rz - cubePoint.z);

        if ( x_diff > y_diff && x_diff > z_diff )
            rx = -ry - rz;
        else if ( y_diff > z_diff )
            ry = -rx - rz;
        else
            rz = -rx - ry;

        return new Cube((int)rx, (int)ry, (int)rz);
    }