using System; using System.Collections.Generic; using UnityEngine; namespace ProBuilder2.Common { // Token: 0x02000031 RID: 49 [ExecuteInEditMode] [AddComponentMenu("")] public class pb_MeshRenderer : pb_MonoBehaviourSingleton { // Token: 0x06000144 RID: 324 RVA: 0x00013C47 File Offset: 0x00012047 private int clamp(int val, int min, int max) { return (val >= min) ? ((val <= max) ? val : max) : min; } // Token: 0x06000145 RID: 325 RVA: 0x00013C64 File Offset: 0x00012064 public static void Add(pb_Renderable renderable) { pb_MonoBehaviourSingleton.instance.m_Renderables.Add(renderable); } // Token: 0x06000146 RID: 326 RVA: 0x00013C77 File Offset: 0x00012077 public static void Remove(pb_Renderable renderable) { if (pb_MonoBehaviourSingleton.instance.m_Renderables.Contains(renderable)) { pb_MonoBehaviourSingleton.instance.m_Renderables.Remove(renderable); } } // Token: 0x06000147 RID: 327 RVA: 0x00013CA0 File Offset: 0x000120A0 private void OnRenderObject() { if ((Camera.current.gameObject.hideFlags & this.SceneCameraHideFlags) != this.SceneCameraHideFlags || Camera.current.name != "SceneCamera") { return; } foreach (pb_Renderable pb_Renderable in this.m_Renderables) { if (pb_Renderable.materials == null) { Debug.Log("renderable.materials == null -> " + base.name); } Material[] materials = pb_Renderable.materials; if (pb_Renderable.mesh == null) { Debug.Log("renderable mesh is null"); } else { for (int i = 0; i < pb_Renderable.mesh.subMeshCount; i++) { int num = this.clamp(i, 0, materials.Length - 1); if (materials[num] == null || !materials[num].SetPass(0)) { Debug.Log("material is null"); } else { Graphics.DrawMeshNow(pb_Renderable.mesh, (!(pb_Renderable.transform != null)) ? Matrix4x4.identity : pb_Renderable.transform.localToWorldMatrix, i); } } } } } // Token: 0x06000148 RID: 328 RVA: 0x00013E08 File Offset: 0x00012208 private void OnDestroy() { foreach (pb_Renderable pb_Renderable in this.m_Renderables) { global::UnityEngine.Object.DestroyImmediate(pb_Renderable); } } // Token: 0x0400012E RID: 302 [SerializeField] private HashSet m_Renderables = new HashSet(); // Token: 0x0400012F RID: 303 private readonly HideFlags SceneCameraHideFlags = HideFlags.HideInHierarchy | HideFlags.DontSaveInEditor | HideFlags.NotEditable; } }