System.Collections.Generic.Dictionary.Remove(VoxelVolumeComponent)

Here are the examples of the csharp api System.Collections.Generic.Dictionary.Remove(VoxelVolumeComponent) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

19 Source : VoxelRenderer.cs
with MIT License
from WhyPenguins

public virtual void Collect(RenderContext Context, Shadows.IShadowMapRenderer ShadowMapRenderer)
        {
            renderVoxelVolumes = Context.VisibilityGroup.Tags.Get(CurrentRenderVoxelVolumes);

            if (renderVoxelVolumes == null || renderVoxelVolumes.Count == 0)
                return;

            List<VoxelVolumeComponent> toRemove = new List<VoxelVolumeComponent>();
            foreach (var pair in renderVoxelVolumeData)
            {
                bool used = false;
                foreach (var pair2 in renderVoxelVolumes)
                {
                    if (pair2.Key == pair.Key)
                        used = true;
                }
                if (!used)
                {
                    toRemove.Add(pair.Key);
                }
            }
            foreach (var comp in toRemove)
            {
                renderVoxelVolumeDataList.Remove(renderVoxelVolumeData[comp]);
                renderVoxelVolumeData.Remove(comp);
                renderVoxelVolumes.Remove(comp);
            }
            //Create per-volume textures
            foreach ( var pair in renderVoxelVolumes )
            {
                var volume = pair.Value;
                var bounds = volume.VoxelMatrix.ScaleVector;

                RenderVoxelVolumeData data;
                if (!renderVoxelVolumeData.TryGetValue(pair.Key, out data))
                {
                    data = new RenderVoxelVolumeData();
                    renderVoxelVolumeDataList.Add(data);
                    renderVoxelVolumeData.Add(pair.Key, data);
                }

                VoxelStorageContext storageContext = new VoxelStorageContext
                {
                    device = Context.GraphicsDevice,
                    Extents = bounds,
                    VoxelSize = volume.AproxVoxelSize,
                    Matrix = volume.VoxelMatrix
                };

                volume.Storage.UpdateFromContext(storageContext, data);

                foreach (var attr in volume.Attributes)
                {
                    attr.PrepareLocalStorage(storageContext, volume.Storage);
                }
                volume.Storage.UpdateTempStorage(storageContext);

                ShaderSourceCollection AttributeIndirect = new ShaderSourceCollection();
                ShaderSourceCollection AttributeModifiers = new ShaderSourceCollection();
                foreach (var attr in volume.Attributes)
                {
                    AttributeIndirect.Add(attr.GetShader());
                    attr.AddAttributes(AttributeModifiers);
                }
                if (AttributeModifiers != data.AttributeModifiers)
                {
                    data.AttributeModifiers = AttributeModifiers;
                }

                if (AttributeIndirect != data.AttributeIndirect)
                {
                    data.AttributeIndirect = AttributeIndirect;
                }
                data.VisualizeVoxels = volume.VisualizeVoxels;
                data.Attributes = volume.Attributes;
                data.Storage = volume.Storage;
                data.StorageContext = storageContext;
                data.VoxelizationMethod = volume.VoxelizationMethod;
                data.VoxelVisualization = volume.VoxelVisualization;
                data.Voxelize = volume.Voxelize;

                data.ReprView = volume.VoxelizationMethod.CollectViews(VoxelStage, volume, storageContext, Context);

                ShadowMapRenderer?.RenderViewsWithShadows.Add(data.ReprView);
            }
        }