Beispiel #1
0
        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;
     }
 }