/// <summary> /// Surfaces call this method when needing to be subdivided. Adds it to queue. /// </summary> public void QueueForSubdivision(Surface s) { if (!subdivisionQueue.Contains(s)) { subdivisionQueue.Add(s); } s.CalculatePriority(); // sort queue to find highest priority surfaces if (surfaceComparer == null) { surfaceComparer = new SurfacePriorityComparer(); } subdivisionQueue.Sort(surfaceComparer); }