private void AddToTerrainSceneActionQueue(TerrainScene terrainScene, ReferenceChange referenceChange, float distance, bool forced = false) { int index = m_terrainSceneActionQueue.FindIndex(x => x.m_distance > distance); if (index != -1) { //We found an entry with a larger distance -> insert it in before that m_terrainSceneActionQueue.Insert(index, new TerrainSceneActionQueueEntry { m_terrainScene = terrainScene, m_referenceChange = referenceChange, m_forced = forced, m_distance = distance }); } else { //no larger distance found, this needs to go to the end of the queue m_terrainSceneActionQueue.Add(new TerrainSceneActionQueueEntry { m_terrainScene = terrainScene, m_referenceChange = referenceChange, m_forced = forced, m_distance = distance }); } }
public ReferencesChangedNotification(ReferenceChange[] changes) { _changes = changes; Height = Measure(changes); }
private static int Measure(ReferenceChange[] changes) { if(changes == null || changes.Length == 0) { return VerticalMargin * 2 + ItemHeight; } else { int count = changes.Length; if(count > MaxItems) { count = MaxItems; } return VerticalMargin * 2 + count * ItemHeight; } }