Exemple #1
0
        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);
                            }
                        }
                    }
        }
Exemple #2
0
 public void RemoveVolume(VoxelVolume volume, QbMatrix matrix, Dictionary<double, VoxelUndoData> modifiedVoxels)
 {
     double hash;
     VoxelUndoData voxel = 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++)
             {
                 hash = matrix.GetHash(x, y, z);
                 if (modifiedVoxels.TryGetValue(hash, out voxel))
                 {
                     matrix.Color(x, y, z, voxel.colorindex, false, true);
                     modifiedVoxels.Remove(hash);
                 }
             }
 }
Exemple #3
0
        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));
                        }
                    }
        }