コード例 #1
0
    private Group TestGetFloatValueWithCubeOffset(float[,,] cell)
    {
        LinkedList <bool> batch = new LinkedList <bool>();


        MarchingCubes.Positon pos = new MarchingCubes.Positon();
        pos.x = 0;
        pos.y = 0;
        pos.z = 0;

        SetCellStates(cell);
        MarchingCubes marchingCubes = new MarchingCubes();

        marchingCubes.SetVolume(cell);

        Assert <float>("GetFloat Test {0,0,0} = -1", ref batch, -1f, marchingCubes.GetFloatValueWithCubeOffset(0, pos));

        pos.x = 2;

        Assert <float>("GetFloat Test {2,0,0} = 1.1", ref batch, 1.1f, marchingCubes.GetFloatValueWithCubeOffset(0, pos));

        Assert <float>("GetFloat Test {2,1,0} = 1.2", ref batch, 1.2f, marchingCubes.GetFloatValueWithCubeOffset(1, pos));

        Assert <float>("GetFloat Test {2,0,1} = 1.3", ref batch, 1.3f, marchingCubes.GetFloatValueWithCubeOffset(4, pos));

        Assert <float>("GetFloat Test {2,1,1} = 1.4", ref batch, 1.4f, marchingCubes.GetFloatValueWithCubeOffset(5, pos));
        return(new Group("GetFloatValueWithCubeOffset", batch));
    }
コード例 #2
0
    private Group TestCubeToCaseNumber(float[,,] cell)
    {
        LinkedList <bool> batch = new LinkedList <bool>();

        SetCellStates(cell);

        // Testing Case 0u
        MarchingCubes marchingCubes = new MarchingCubes();

        marchingCubes.SetVolume(cell);
        MarchingCubes.Positon pos = new MarchingCubes.Positon();
        pos.x = 0;
        pos.y = 0;
        pos.z = 0;

        Assert <int>("Case Test {0,0,0} = 0", ref batch, 0, marchingCubes.CubeToCaseNumber(pos));

        // Testing Case 1
        pos.x = 1;
        Assert <int>("Case Test {1,0,0} = 204", ref batch, 204, marchingCubes.CubeToCaseNumber(pos));

        //Testing Case 2
        pos.x = 2;
        Assert <int>("Case Test {2,0,0} = 51", ref batch, 51, marchingCubes.CubeToCaseNumber(pos));

        return(new Group("CubeToCaseNumber", batch));
    }
コード例 #3
0
    private Group TestEdgeToVector(float[,,] cell)
    {
        LinkedList <bool> batch         = new LinkedList <bool>();
        MarchingCubes     marchingCubes = new MarchingCubes();

        marchingCubes.SetVolume(cell);

        MarchingCubes.Positon pos = new MarchingCubes.Positon();

        pos.x = 1;
        pos.y = 0;
        pos.z = 0;

        float expected = Mathf.Lerp(1f, 2f, Mathf.Abs(1.1f) / Mathf.Abs(-1f - 1.1f));

        expected = Mathf.Round(expected * 100000) / 100000;

        float actual = marchingCubes.EdgeToVector(3, pos)[0];

        actual = Mathf.Round(actual * 100000) / 100000;

        Assert <float>("Edge To Vector Test & LerpVectors 1", ref batch, expected, actual);
        return(new Group("EdgeToVector", batch));
    }