public TypeList(Profile p) { int num = 0; int cutoff = (int) (p.MaxSize * TypeTabulator.Threshold); foreach (long l in p.Metadata.TypeMax) if (l >= cutoff) num ++; Sizes = new long [num]; TypeIndexes = new int [num]; Names = new string [num]; TypeBrushes = new Brush [num]; num = 0; for (int i = 0; i < p.Metadata.TypeMax.Length; i ++) { if (p.Metadata.TypeMax [i] >= cutoff) { Sizes [num] = p.Metadata.TypeMax [i]; TypeIndexes [num] = i; num ++; } } Array.Sort (Sizes, TypeIndexes); RandomBrush rb = new RandomBrush (); for (int i = 0; i < Sizes.Length; i ++) { TypeBrushes [i] = rb.Next (); Names [i] = p.GetTypeName (TypeIndexes [i]); } }