Svg.SvgTextBase.TextDrawingState.GetValues C# (CSharp) Method

GetValues() private method

private GetValues ( int maxCount, Func listGetter, UnitRenderingType renderingType ) : IList
maxCount int
listGetter Func
renderingType UnitRenderingType
return IList
            private IList<float> GetValues(int maxCount, Func<SvgTextBase, IEnumerable<SvgUnit>> listGetter, UnitRenderingType renderingType)
            {
                var currState = this;
                int charCount = 0;
                var results = new List<float>();
                int resultCount = 0;

                while (currState != null)
                {
                    charCount += currState.NumChars;
                    results.AddRange(listGetter.Invoke(currState.Element).Skip(charCount).Take(maxCount).Select(p => p.ToDeviceValue(currState.Renderer, renderingType, currState.Element)));
                    if (results.Count > resultCount)
                    {
                        maxCount -= results.Count - resultCount;
                        charCount += results.Count - resultCount;
                        resultCount = results.Count;
                    }

                    if (maxCount < 1) return results;

                    currState = currState.Parent;
                }

                return results;
            }

Same methods

SvgTextBase.TextDrawingState::GetValues ( int maxCount, Func listGetter ) : IList