using System; using System.Collections.Generic; using UnityEngine; namespace LOS { // Token: 0x02000108 RID: 264 public class LOSManager { // Token: 0x06001603 RID: 5635 RVA: 0x0019D056 File Offset: 0x0019B256 private LOSManager() { } // Token: 0x1700002B RID: 43 // (get) Token: 0x06001604 RID: 5636 RVA: 0x0019D084 File Offset: 0x0019B284 public static LOSManager Instance { get { if (LOSManager.m_Instance == null) { LOSManager.m_Instance = new LOSManager(); } return LOSManager.m_Instance; } } // Token: 0x1700002C RID: 44 // (get) Token: 0x06001605 RID: 5637 RVA: 0x0019D09C File Offset: 0x0019B29C public List LOSSources { get { return this.m_LOSSources; } } // Token: 0x1700002D RID: 45 // (get) Token: 0x06001606 RID: 5638 RVA: 0x0019D0A4 File Offset: 0x0019B2A4 public int ActiveCameraCount { get { int num = 0; using (List.Enumerator enumerator = this.m_LOSSources.GetEnumerator()) { while (enumerator.MoveNext()) { if (((ILOSSource)enumerator.Current).IsVisible) { num++; } } } return num; } } // Token: 0x1700002E RID: 46 // (get) Token: 0x06001607 RID: 5639 RVA: 0x0019D100 File Offset: 0x0019B300 public int CameraCount { get { return this.m_LOSSources.Count; } } // Token: 0x06001608 RID: 5640 RVA: 0x0019D10D File Offset: 0x0019B30D public void AddLOSSource(LOSSource source) { this.m_LOSSources.Add(source); } // Token: 0x06001609 RID: 5641 RVA: 0x0019D11B File Offset: 0x0019B31B public void RemoveLOSSource(LOSSource source) { this.m_LOSSources.Remove(source); } // Token: 0x0600160A RID: 5642 RVA: 0x0019D12C File Offset: 0x0019B32C public CullingGroup AddCullingGroup(Camera targetCamera) { if (!this.m_CullingGroups.ContainsKey(targetCamera)) { CullingGroup cullingGroup = new CullingGroup(); cullingGroup.targetCamera = targetCamera; cullingGroup.SetBoundingSpheres(this.m_BoundingSpheres); this.m_CullingGroups.Add(targetCamera, cullingGroup); } return this.m_CullingGroups[targetCamera]; } // Token: 0x0600160B RID: 5643 RVA: 0x0019D179 File Offset: 0x0019B379 public void RemoveCullingGroup(Camera targetCamera) { if (this.m_CullingGroups.ContainsKey(targetCamera)) { CullingGroup cullingGroup = this.m_CullingGroups[targetCamera]; cullingGroup.onStateChanged = null; cullingGroup.Dispose(); this.m_CullingGroups.Remove(targetCamera); } } // Token: 0x0600160C RID: 5644 RVA: 0x0019D1B0 File Offset: 0x0019B3B0 private CullingGroup GetCullingGroup(Camera targetCamera) { CullingGroup cullingGroup; this.m_CullingGroups.TryGetValue(targetCamera, out cullingGroup); return cullingGroup; } // Token: 0x0400261C RID: 9756 private static LOSManager m_Instance; // Token: 0x0400261D RID: 9757 private List m_LOSSources = new List(); // Token: 0x0400261E RID: 9758 private BoundingSphere[] m_BoundingSpheres = new BoundingSphere[512]; // Token: 0x0400261F RID: 9759 private Dictionary m_CullingGroups = new Dictionary(); } }