コード例 #1
0
        private void RemoveOccludedNeighbours(Int32 positionCode)
        {
            // The map set can cause neighboured voxels to be occluded
            // if so delete that from GPU.
            Action <Int32> checkAndRemoveNeighbour = (Int32 pos) => { if (!_map.IsEmpty(pos) && _map.IsOccluded(pos))
                                                                      {
                                                                          _deleteList.Add(new Voxel(pos, _map.Get(pos)));
                                                                      }
            };

            checkAndRemoveNeighbour(positionCode - 1);
            checkAndRemoveNeighbour(positionCode + 1);
            checkAndRemoveNeighbour(positionCode - _map.SizeX);
            checkAndRemoveNeighbour(positionCode + _map.SizeX);
            checkAndRemoveNeighbour(positionCode - _map.SizeX * _map.SizeY);
            checkAndRemoveNeighbour(positionCode + _map.SizeX * _map.SizeY);
        }