Exemplo n.º 1
0
        public static void SetSelectedLODLevelPercentage(float newScreenPercentage, int lod, List <LODGroupGUI.LODInfo> lods)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            LODGroupGUI.\u003CSetSelectedLODLevelPercentage\u003Ec__AnonStorey96 percentageCAnonStorey96 = new LODGroupGUI.\u003CSetSelectedLODLevelPercentage\u003Ec__AnonStorey96();
            // ISSUE: reference to a compiler-generated field
            percentageCAnonStorey96.lods = lods;
            // ISSUE: reference to a compiler-generated field
            percentageCAnonStorey96.lod = lod;
            float num1 = 0.0f;

            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated method
            LODGroupGUI.LODInfo lodInfo1 = percentageCAnonStorey96.lods.FirstOrDefault <LODGroupGUI.LODInfo>(new Func <LODGroupGUI.LODInfo, bool>(percentageCAnonStorey96.\u003C\u003Em__17E));
            if (lodInfo1 != null)
            {
                num1 = lodInfo1.ScreenPercent;
            }
            float num2 = 1f;

            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated method
            LODGroupGUI.LODInfo lodInfo2 = percentageCAnonStorey96.lods.FirstOrDefault <LODGroupGUI.LODInfo>(new Func <LODGroupGUI.LODInfo, bool>(percentageCAnonStorey96.\u003C\u003Em__17F));
            if (lodInfo2 != null)
            {
                num2 = lodInfo2.ScreenPercent;
            }
            float max = Mathf.Clamp01(num2);
            float min = Mathf.Clamp01(num1);

            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            percentageCAnonStorey96.lods[percentageCAnonStorey96.lod].ScreenPercent = Mathf.Clamp(newScreenPercentage, min, max);
        }
Exemplo n.º 2
0
        private static void DrawLODRange(LODGroupGUI.LODInfo currentLOD, float previousLODPercentage, bool isSelected)
        {
            Color  backgroundColor = GUI.backgroundColor;
            string text            = string.Format("{0}\n{1:0}%", currentLOD.LODName, previousLODPercentage * 100f);

            if (isSelected)
            {
                Rect rangePosition = currentLOD.m_RangePosition;
                rangePosition.width  -= 6f;
                rangePosition.height -= 6f;
                rangePosition.center += new Vector2(3f, 3f);
                LODGroupGUI.Styles.m_LODSliderRangeSelected.Draw(currentLOD.m_RangePosition, GUIContent.none, false, false, false, false);
                GUI.backgroundColor = LODGroupGUI.kLODColors[currentLOD.LODLevel];
                if (rangePosition.width > 0f)
                {
                    LODGroupGUI.Styles.m_LODSliderRange.Draw(rangePosition, GUIContent.none, false, false, false, false);
                }
                LODGroupGUI.Styles.m_LODSliderText.Draw(currentLOD.m_RangePosition, text, false, false, false, false);
            }
            else
            {
                GUI.backgroundColor  = LODGroupGUI.kLODColors[currentLOD.LODLevel];
                GUI.backgroundColor *= 0.6f;
                LODGroupGUI.Styles.m_LODSliderRange.Draw(currentLOD.m_RangePosition, GUIContent.none, false, false, false, false);
                LODGroupGUI.Styles.m_LODSliderText.Draw(currentLOD.m_RangePosition, text, false, false, false, false);
            }
            GUI.backgroundColor = backgroundColor;
        }
Exemplo n.º 3
0
 public static void DrawLODSlider(Rect area, IList <LODGroupGUI.LODInfo> lods, int selectedLevel)
 {
     LODGroupGUI.Styles.m_LODSliderBG.Draw(area, GUIContent.none, false, false, false, false);
     for (int i = 0; i < lods.Count; i++)
     {
         LODGroupGUI.LODInfo currentLOD = lods[i];
         LODGroupGUI.DrawLODRange(currentLOD, (i != 0) ? lods[i - 1].RawScreenPercent : 1f, i == selectedLevel);
         LODGroupGUI.DrawLODButton(currentLOD);
     }
     LODGroupGUI.DrawCulledRange(area, (lods.Count <= 0) ? 1f : lods[lods.Count - 1].RawScreenPercent);
 }
Exemplo n.º 4
0
 public static void DrawLODSlider(Rect area, IList <LODGroupGUI.LODInfo> lods, int selectedLevel)
 {
     LODGroupGUI.Styles.m_LODSliderBG.Draw(area, GUIContent.none, false, false, false, false);
     for (int index = 0; index < lods.Count; ++index)
     {
         LODGroupGUI.LODInfo lod = lods[index];
         LODGroupGUI.DrawLODRange(lod, index != 0 ? lods[index - 1].RawScreenPercent : 1f, index == selectedLevel);
         LODGroupGUI.DrawLODButton(lod);
     }
     LODGroupGUI.DrawCulledRange(area, lods.Count <= 0 ? 1f : lods[lods.Count - 1].RawScreenPercent);
 }
Exemplo n.º 5
0
 public static List<LODGroupGUI.LODInfo> CreateLODInfos(int numLODs, Rect area, Func<int, string> nameGen, Func<int, float> heightGen)
 {
   List<LODGroupGUI.LODInfo> lodInfoList = new List<LODGroupGUI.LODInfo>();
   for (int lodLevel = 0; lodLevel < numLODs; ++lodLevel)
   {
     LODGroupGUI.LODInfo lodInfo = new LODGroupGUI.LODInfo(lodLevel, nameGen(lodLevel), heightGen(lodLevel));
     lodInfo.m_ButtonPosition = LODGroupGUI.CalcLODButton(area, lodInfo.ScreenPercent);
     float startPercent = lodLevel != 0 ? lodInfoList[lodLevel - 1].ScreenPercent : 1f;
     lodInfo.m_RangePosition = LODGroupGUI.CalcLODRange(area, startPercent, lodInfo.ScreenPercent);
     lodInfoList.Add(lodInfo);
   }
   return lodInfoList;
 }
Exemplo n.º 6
0
        public static List <LODGroupGUI.LODInfo> CreateLODInfos(int numLODs, Rect area, Func <int, string> nameGen, Func <int, float> heightGen)
        {
            List <LODGroupGUI.LODInfo> list = new List <LODGroupGUI.LODInfo>();

            for (int i = 0; i < numLODs; i++)
            {
                LODGroupGUI.LODInfo lODInfo = new LODGroupGUI.LODInfo(i, nameGen(i), heightGen(i));
                lODInfo.m_ButtonPosition = LODGroupGUI.CalcLODButton(area, lODInfo.ScreenPercent);
                float startPercent = (i != 0) ? list[i - 1].ScreenPercent : 1f;
                lODInfo.m_RangePosition = LODGroupGUI.CalcLODRange(area, startPercent, lODInfo.ScreenPercent);
                list.Add(lODInfo);
            }
            return(list);
        }
Exemplo n.º 7
0
        public static List <LODGroupGUI.LODInfo> CreateLODInfos(int numLODs, Rect area, Func <int, string> nameGen, Func <int, float> heightGen)
        {
            List <LODGroupGUI.LODInfo> lodInfoList = new List <LODGroupGUI.LODInfo>();

            for (int lodLevel = 0; lodLevel < numLODs; ++lodLevel)
            {
                LODGroupGUI.LODInfo lodInfo = new LODGroupGUI.LODInfo(lodLevel, nameGen(lodLevel), heightGen(lodLevel));
                lodInfo.m_ButtonPosition = LODGroupGUI.CalcLODButton(area, lodInfo.ScreenPercent);
                float startPercent = lodLevel != 0 ? lodInfoList[lodLevel - 1].ScreenPercent : 1f;
                lodInfo.m_RangePosition = LODGroupGUI.CalcLODRange(area, startPercent, lodInfo.ScreenPercent);
                lodInfoList.Add(lodInfo);
            }
            return(lodInfoList);
        }
Exemplo n.º 8
0
        public static void SetSelectedLODLevelPercentage(float newScreenPercentage, int lod, List <LODGroupGUI.LODInfo> lods)
        {
            float num = 0f;

            LODGroupGUI.LODInfo lODInfo = lods.FirstOrDefault((LODGroupGUI.LODInfo x) => x.LODLevel == lods[lod].LODLevel + 1);
            if (lODInfo != null)
            {
                num = lODInfo.RawScreenPercent;
            }
            float num2 = 1f;

            LODGroupGUI.LODInfo lODInfo2 = lods.FirstOrDefault((LODGroupGUI.LODInfo x) => x.LODLevel == lods[lod].LODLevel - 1);
            if (lODInfo2 != null)
            {
                num2 = lODInfo2.RawScreenPercent;
            }
            num2 = Mathf.Clamp01(num2);
            num  = Mathf.Clamp01(num);
            lods[lod].RawScreenPercent = Mathf.Clamp(newScreenPercentage, num, num2);
        }
Exemplo n.º 9
0
 private static void DrawLODButton(LODGroupGUI.LODInfo currentLOD)
 {
     EditorGUIUtility.AddCursorRect(currentLOD.m_ButtonPosition, MouseCursor.ResizeHorizontal);
 }
Exemplo n.º 10
0
		public static List<LODGroupGUI.LODInfo> CreateLODInfos(int numLODs, Rect area, Func<int, string> nameGen, Func<int, float> heightGen)
		{
			List<LODGroupGUI.LODInfo> list = new List<LODGroupGUI.LODInfo>();
			for (int i = 0; i < numLODs; i++)
			{
				LODGroupGUI.LODInfo lODInfo = new LODGroupGUI.LODInfo(i, nameGen(i), heightGen(i));
				lODInfo.m_ButtonPosition = LODGroupGUI.CalcLODButton(area, lODInfo.ScreenPercent);
				float startPercent = (i != 0) ? list[i - 1].ScreenPercent : 1f;
				lODInfo.m_RangePosition = LODGroupGUI.CalcLODRange(area, startPercent, lODInfo.ScreenPercent);
				list.Add(lODInfo);
			}
			return list;
		}
        private void DrawLODLevelSlider(Rect sliderPosition, List <LODGroupGUI.LODInfo> lods)
        {
            int   controlId = GUIUtility.GetControlID(this.m_LODSliderId, FocusType.Passive);
            Event current1  = Event.current;

            switch (current1.GetTypeForControl(controlId))
            {
            case EventType.MouseDown:
                Rect rect = sliderPosition;
                rect.x     -= 5f;
                rect.width += 10f;
                if (!rect.Contains(current1.mousePosition))
                {
                    break;
                }
                current1.Use();
                GUIUtility.hotControl = controlId;
                IOrderedEnumerable <LODGroupGUI.LODInfo> orderedEnumerable1 = lods.Where <LODGroupGUI.LODInfo>((Func <LODGroupGUI.LODInfo, bool>)(lod => (double)lod.ScreenPercent > 0.5)).OrderByDescending <LODGroupGUI.LODInfo, int>((Func <LODGroupGUI.LODInfo, int>)(x => x.LODLevel));
                IOrderedEnumerable <LODGroupGUI.LODInfo> orderedEnumerable2 = lods.Where <LODGroupGUI.LODInfo>((Func <LODGroupGUI.LODInfo, bool>)(lod => (double)lod.ScreenPercent <= 0.5)).OrderBy <LODGroupGUI.LODInfo, int>((Func <LODGroupGUI.LODInfo, int>)(x => x.LODLevel));
                List <LODGroupGUI.LODInfo> lodInfoList = new List <LODGroupGUI.LODInfo>();
                lodInfoList.AddRange((IEnumerable <LODGroupGUI.LODInfo>)orderedEnumerable1);
                lodInfoList.AddRange((IEnumerable <LODGroupGUI.LODInfo>)orderedEnumerable2);
                using (List <LODGroupGUI.LODInfo> .Enumerator enumerator = lodInfoList.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        LODGroupGUI.LODInfo current2 = enumerator.Current;
                        if (current2.m_ButtonPosition.Contains(current1.mousePosition))
                        {
                            this.m_SelectedLODSlider = current2.LODLevel;
                            this.m_SelectedLODRange  = current2.LODLevel;
                            break;
                        }
                        if (current2.m_RangePosition.Contains(current1.mousePosition))
                        {
                            this.m_SelectedLODSlider = -1;
                            this.m_SelectedLODRange  = current2.LODLevel;
                            break;
                        }
                    }
                    break;
                }

            case EventType.MouseUp:
                if (GUIUtility.hotControl != controlId)
                {
                    break;
                }
                GUIUtility.hotControl = 0;
                current1.Use();
                break;

            case EventType.MouseDrag:
                if (GUIUtility.hotControl != controlId || this.m_SelectedLODSlider < 0 || lods[this.m_SelectedLODSlider] == null)
                {
                    break;
                }
                current1.Use();
                LODGroupGUI.SetSelectedLODLevelPercentage(Mathf.Clamp01((float)(1.0 - ((double)current1.mousePosition.x - (double)sliderPosition.x) / (double)sliderPosition.width)) - 1f / 1000f, this.m_SelectedLODSlider, lods);
                this.m_LODSettings.GetArrayElementAtIndex(this.m_SelectedLODSlider).FindPropertyRelative("height").floatValue = lods[this.m_SelectedLODSlider].RawScreenPercent;
                break;

            case EventType.Repaint:
                LODGroupGUI.DrawLODSlider(sliderPosition, (IList <LODGroupGUI.LODInfo>)lods, this.m_SelectedLODRange);
                break;
            }
        }