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)); }
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)); }
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)); }