Animatroller.Framework.LogicalDevice.VirtualPixel2D3.PixelDevice.UpdatePixelMapping C# (CSharp) Метод

UpdatePixelMapping() приватный Метод

private UpdatePixelMapping ( Utility.PixelMap[]>.Dictionary input ) : void
input Utility.PixelMap[]>.Dictionary
Результат void
            private void UpdatePixelMapping(Dictionary<int, Utility.PixelMap[]> input)
            {
                for (int i = 0; i < this.pixelMapping.Length; i++)
                    this.pixelMapping[i] = -1;

                if (!input.Any())
                    return;

                int minUniverse = input.Min(x => x.Key);
                int maxUniverse = input.Max(x => x.Key);

                for (int universe = minUniverse; universe <= maxUniverse; universe++)
                {
                    Utility.PixelMap[] mapping;
                    if (!input.TryGetValue(universe, out mapping))
                        continue;

                    for (int i = 0; i < mapping.Length; i++)
                    {
                        Utility.PixelMap map = mapping[i];

                        int rgbOffset = -1;
                        switch (map.ColorComponent)
                        {
                            case Utility.ColorComponent.R:
                                rgbOffset = 2;
                                break;

                            case Utility.ColorComponent.G:
                                rgbOffset = 1;
                                break;

                            case Utility.ColorComponent.B:
                                rgbOffset = 0;
                                break;
                        }
                        if (rgbOffset == -1)
                            continue;

                        int sourcePos = map.Y * this.stride + map.X * 3 + rgbOffset;
                        if (sourcePos >= 0 && sourcePos <= this.pixelMapping.Length)
                            this.pixelMapping[sourcePos] = i + (universe - minUniverse) * 510;
                    }
                }
            }