private GetValues ( int maxCount, Func |
||
maxCount | int | |
listGetter | Func |
|
return | IList |
private IList<float> GetValues(int maxCount, Func<SvgTextBase, IEnumerable<float>> listGetter)
{
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));
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;
}
SvgTextBase.TextDrawingState::GetValues ( int maxCount, Func |