当前位置: 首页>>代码示例>>C#>>正文


C# ElementNode.ToList方法代码示例

本文整理汇总了C#中ElementNode.ToList方法的典型用法代码示例。如果您正苦于以下问题:C# ElementNode.ToList方法的具体用法?C# ElementNode.ToList怎么用?C# ElementNode.ToList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ElementNode的用法示例。


在下文中一共展示了ElementNode.ToList方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RenderNode

        // renders the given node to the internal ElementData dictionary. If the given node is
        // not a element, will recursively descend until we render its elements.
        private void RenderNode(ElementNode node)
        {
            int wid;
            int ht;
            if (_data.NutcrackerData.StringOrienation == NutcrackerEffects.StringOrientations.Horizontal)
            {
                wid = MaxPixelsPerString;
                ht = StringCount;
            }
            else
            {
                wid = StringCount;
                ht = MaxPixelsPerString;
            }
            int nFrames = (int)(TimeSpan.TotalMilliseconds / frameMs);
            var nccore = new NutcrackerEffects(_data.NutcrackerData) {Duration = TimeSpan};
            nccore.InitBuffer( wid, ht);
            int numElements = node.Count();

            TimeSpan startTime = TimeSpan.Zero;

            // OK, we're gonna create 1 intent per element
            // that intent will hold framesToRender Color values
            // that it will parcel out as intent states are called for...

            // set up arrays to hold the generated colors
            var pixels = new RGBValue[numElements][];
            for (int eidx = 0; eidx < numElements; eidx++)
                pixels[eidx] = new RGBValue[nFrames];
            List<ElementNode> nodes = FindLeafParents().ToList();
            // generate all the pixels
            for (int frameNum = 0; frameNum < nFrames; frameNum++)
            {
                nccore.RenderNextEffect(_data.NutcrackerData.CurrentEffect);
                // peel off this frames pixels...
                if (_data.NutcrackerData.StringOrienation == NutcrackerEffects.StringOrientations.Horizontal)
                {
                    int i = 0;
                    for (int y = 0; y < ht; y++)
                    {
                        for (int x = 0; x < _stringPixelCounts[y]; x++)
                        {
                            pixels[i][frameNum] = new RGBValue(nccore.GetPixel(x, y));
                            i++;
                        }
                    }
                }
                else
                {
                    int i = 0;
                    for (int x = 0; x < wid; x++)
                    {
                        for (int y = 0; y < _stringPixelCounts[x]; y++)
                        {
                            pixels[i][frameNum] = new RGBValue(nccore.GetPixel(x, y));
                            i++;
                        }
                    }
                }
            };

            // create the intents
            var frameTs = new TimeSpan(0, 0, 0, 0, frameMs);
            List<Element> elements = node.ToList();
            for (int eidx = 0; eidx < numElements; eidx++)
            {
                IIntent intent = new StaticArrayIntent<RGBValue>(frameTs, pixels[eidx], TimeSpan);
                _elementData.AddIntentForElement(elements[eidx].Id, intent, startTime);
            }

            nccore.Dispose();
        }
开发者ID:naztrain,项目名称:vixen,代码行数:74,代码来源:Nutcracker.cs

示例2: RenderNode

        protected EffectIntents RenderNode(ElementNode node)
        {
            EffectIntents effectIntents = new EffectIntents();
            int nFrames = (int)(TimeSpan.TotalMilliseconds / FrameTime);
            if (nFrames <= 0) return effectIntents;
            var buffer = new PixelFrameBuffer(BufferWi, BufferHt, UseBaseColor?BaseColor:Color.Transparent);

            int bufferSize = StringPixelCounts.Sum();

            TimeSpan startTime = TimeSpan.Zero;

            // set up arrays to hold the generated colors
            var pixels = new RGBValue[bufferSize][];
            for (int eidx = 0; eidx < bufferSize; eidx++)
                pixels[eidx] = new RGBValue[nFrames];

            // generate all the pixels
            for (int frameNum = 0; frameNum < nFrames; frameNum++)
            {
                if (UseBaseColor)
                {
                    var level = BaseLevelCurve.GetValue(GetEffectTimeIntervalPosition(frameNum)*100)/100;
                    buffer.ClearBuffer(level);
                }
                else
                {
                    buffer.ClearBuffer();
                }

                RenderEffect(frameNum, ref buffer);
                // peel off this frames pixels...
                if (StringOrientation == StringOrientation.Horizontal)
                {
                    int i = 0;
                    for (int y = 0; y < BufferHt; y++)
                    {
                        for (int x = 0; x < StringPixelCounts[y]; x++)
                        {
                            pixels[i][frameNum] = new RGBValue(buffer.GetColorAt(x,y));
                            i++;
                        }
                    }
                }
                else
                {
                    int i = 0;
                    for (int x = 0; x < BufferWi; x++)
                    {
                        for (int y = 0; y < StringPixelCounts[x]; y++)
                        {
                            pixels[i][frameNum] = new RGBValue(buffer.GetColorAt(x, y));
                            i++;
                        }
                    }
                }
            };

            // create the intents
            var frameTs = new TimeSpan(0, 0, 0, 0, FrameTime);
            List<Element> elements = node.ToList();
            int numElements = node.Count();
            for (int eidx = 0; eidx < numElements; eidx++)
            {
                IIntent intent = new StaticArrayIntent<RGBValue>(frameTs, pixels[eidx], TimeSpan);
                effectIntents.AddIntentForElement(elements[eidx].Id, intent, startTime);
            }

            return effectIntents;
        }
开发者ID:Evilfish2000,项目名称:vixen,代码行数:69,代码来源:PixelEffectBase.cs

示例3: RenderNode

        // renders the given node to the internal ElementData dictionary. If the given node is
        // not a element, will recursively descend until we render its elements.
        private void RenderNode(ElementNode node)
        {
            int wid = 0;
            int ht = 0;
            if (_data.NutcrackerData.StringOrienation == NutcrackerEffects.StringOrientations.Horizontal)
            {
                wid = PixelsPerString();
                ht = StringCount;
            }
            else
            {
                wid = StringCount;
                ht = PixelsPerString();
            }
            int nFrames = (int)(TimeSpan.TotalMilliseconds / frameMs);
            NutcrackerEffects nccore = new NutcrackerEffects(_data.NutcrackerData);
            nccore.InitBuffer( wid, ht);
            int totalPixels = nccore.PixelCount();
            if( totalPixels != wid * ht)
                throw new Exception("bad pixel count");
            int numElements = node.Count();
            if (numElements != totalPixels)
                Logging.Warn( "numEle " + numElements + " != totalPixels " + totalPixels);

            TimeSpan startTime = TimeSpan.Zero;
            //TimeSpan ms50 = new TimeSpan(0, 0, 0, 0, frameMs);
            Stopwatch timer = new Stopwatch();
            timer.Start();

            // OK, we're gonna create 1 intent per element
            // that intent will hold framesToRender Color values
            // that it will parcel out as intent states are called for...

            // set up arrays to hold the generated colors
            var pixels = new RGBValue[numElements][];
            for (int eidx = 0; eidx < numElements; eidx++)
                pixels[eidx] = new RGBValue[nFrames];

            // generate all the pixels
            int pps = PixelsPerString();
            int sc = StringCount;
            for (int frameNum = 0; frameNum < nFrames; frameNum++)
            {
                nccore.RenderNextEffect(_data.NutcrackerData.CurrentEffect);
                // peel off this frames pixels...
                if (_data.NutcrackerData.StringOrienation == NutcrackerEffects.StringOrientations.Horizontal)
                {
                    int i = 0;
                    for (int y = 0; y < sc; y++)
                    {
                        for (int x = 0; x < pps; x++)
                        {
                            pixels[i][frameNum] = new RGBValue(nccore.GetPixel(x, y));
                            i++;
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < numElements; i++)
                    {
                        pixels[i][frameNum] = new RGBValue(nccore.GetPixel(i));
                    }
                }
            };

            // create the intents
            var frameTs = new TimeSpan(0, 0, 0, 0, frameMs);
            List<Element> elements = node.ToList();
            for (int eidx = 0; eidx < numElements; eidx++)
            {
                IIntent intent = new StaticArrayIntent<RGBValue>(frameTs, pixels[eidx], TimeSpan);
                _elementData.AddIntentForElement(elements[eidx].Id, intent, startTime);
            }

            timer.Stop();
            Logging.Debug(" {0}ms, Frames: {1}, wid: {2}, ht: {3},  pix: {4}, intents: {5}",
                            timer.ElapsedMilliseconds, nFrames, wid, ht, totalPixels, _elementData.Count());
        }
开发者ID:Jchuchla,项目名称:vixen,代码行数:81,代码来源:Nutcracker.cs


注:本文中的ElementNode.ToList方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。