public void RemoveVolume(VoxelVolume volume, QbMatrix matrix, Dictionary <double, VoxelUndoData> modifiedVoxels) { VoxelUndoData _temp; 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 _temp) && _temp.changed) { matrix.Remove(x, y, z, false, false); modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } } } }
public void CleanLastVolume(VoxelVolume volume, VoxelVolume currentVolume, QbMatrix matrix, Dictionary <double, VoxelUndoData> modifiedVoxels) { 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[matrix.GetHash(x, y, z)].changed) { matrix.Remove(x, y, z, false, false); modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } } } } }
public void AddVolume(VoxelVolume volume, QbMatrix matrix, ref Colort color, 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.ContainsKey(matrix.GetHash(x, y, z))) { if (matrix.GetColorIndex_Alphamask(x, y, z, out removed.colorindex, out removed.alphamask)) { if (matrix.Remove(x, y, z, true, false)) { modifiedVoxels.Add(matrix.GetHash(x, y, z), removed); } } } } } } }
public void AddVolume(VoxelVolume volume, QbMatrix matrix, ref Colort color, 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.ContainsKey(matrix.GetHash(x, y, z))) { if (matrix.GetColorIndex_Alphamask(x, y, z, out removed.colorindex, out removed.alphamask)) { if (matrix.Remove(x, y, z, true, false)) modifiedVoxels.Add(matrix.GetHash(x, y, z), removed); } } } }
public void RemoveVolume(VoxelVolume volume, QbMatrix matrix, Dictionary<double, VoxelUndoData> modifiedVoxels) { VoxelUndoData _temp; 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 _temp) && _temp.changed) { matrix.Remove(x, y, z, false, false); modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } }
public void CleanLastVolume(VoxelVolume volume, VoxelVolume currentVolume, QbMatrix matrix, Dictionary<double, VoxelUndoData> modifiedVoxels) { 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[matrix.GetHash(x, y, z)].changed) { matrix.Remove(x, y, z, false, false); modifiedVoxels.Remove(matrix.GetHash(x, y, z)); } } } }