public void CleanLastVolume(VoxelVolume volume, VoxelVolume currentVolume, QbMatrix matrix, Dictionary <double, VoxelUndoData> modifiedVoxels) { VoxelUndoData removed = new VoxelUndoData(); for (int z = volume.minz; z <= volume.maxz; z++) { for (int y = volume.miny; y <= volume.maxy; y++) { for (int x = volume.minx; x <= volume.maxx; x++) { if (!currentVolume.ContainsPoint(x, y, z)) { if (modifiedVoxels.TryGetValue(matrix.GetHash(x, y, z), out removed)) { if (removed.alphamask > 1) { matrix.Add(x, y, z, matrix.colors[removed.colorindex]); } modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } } } } }
public void AddVolume(VoxelVolume volume, QbMatrix matrix, ref Colort color, Dictionary <double, VoxelUndoData> modifiedVoxels) { double hash; for (int z = volume.minz; z <= volume.maxz; z++) { for (int y = volume.miny; y <= volume.maxy; y++) { for (int x = volume.minx; x <= volume.maxx; x++) { hash = matrix.GetHash(x, y, z); if (!modifiedVoxels.ContainsKey(hash)) { modifiedVoxels.Add(hash, new VoxelUndoData(matrix.Add(x, y, z, color))); } } } } }
public void RemoveVolume(VoxelVolume volume, QbMatrix matrix, Dictionary<double, VoxelUndoData> modifiedVoxels) { VoxelUndoData removed = new VoxelUndoData(); for (int z = volume.minz; z <= volume.maxz; z++) for (int y = volume.miny; y <= volume.maxy; y++) for (int x = volume.minx; x <= volume.maxx; x++) { if (modifiedVoxels.TryGetValue(matrix.GetHash(x, y, z), out removed)) { if (removed.alphamask > 1) matrix.Add(x, y, z, matrix.colors[removed.colorindex]); modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } }
public void EnumerateVolume(VoxelVolume volume, VoxelVolume currentVolume, QbMatrix matrix, ref Colort color, Dictionary <double, VoxelUndoData> modifiedVoxels) { for (int z = currentVolume.minz; z <= currentVolume.maxz; z++) { for (int y = currentVolume.miny; y <= currentVolume.maxy; y++) { for (int x = currentVolume.minx; x <= currentVolume.maxx; x++) { if (!volume.ContainsPoint(x, y, z) && !modifiedVoxels.ContainsKey(matrix.GetHash(x, y, z))) { modifiedVoxels.Add(matrix.GetHash(x, y, z), new VoxelUndoData(matrix.Add(x, y, z, color))); } } } } }
public void AddVolume(VoxelVolume volume, QbMatrix matrix, ref Colort color, Dictionary<double, VoxelUndoData> modifiedVoxels) { double hash; for (int z = volume.minz; z <= volume.maxz; z++) for (int y = volume.miny; y <= volume.maxy; y++) for (int x = volume.minx; x <= volume.maxx; x++) { hash = matrix.GetHash(x, y, z); if (!modifiedVoxels.ContainsKey(hash)) modifiedVoxels.Add(hash, new VoxelUndoData(matrix.Add(x, y, z, color))); } }
public void EnumerateVolume(VoxelVolume volume, VoxelVolume currentVolume, QbMatrix matrix, ref Colort color, Dictionary<double, VoxelUndoData> modifiedVoxels) { for (int z = currentVolume.minz; z <= currentVolume.maxz; z++) for (int y = currentVolume.miny; y <= currentVolume.maxy; y++) for (int x = currentVolume.minx; x <= currentVolume.maxx; x++) { if (!volume.ContainsPoint(x,y,z) && !modifiedVoxels.ContainsKey(matrix.GetHash(x,y,z))) modifiedVoxels.Add(matrix.GetHash(x, y, z), new VoxelUndoData(matrix.Add(x, y, z, color))); } }