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); }
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; }
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); }
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); }
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; }
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); }
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); }
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); }
private static void DrawLODButton(LODGroupGUI.LODInfo currentLOD) { EditorGUIUtility.AddCursorRect(currentLOD.m_ButtonPosition, MouseCursor.ResizeHorizontal); }
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; } }