private static List <SimpleCurveDrawInfo> GetFocusedCurves(List <SimpleCurveDrawInfo> curves, Rect screenRect, Rect viewRect) { if (curves.Count == 0) { return(null); } if (!Mouse.IsOver(screenRect)) { return(null); } GUI.BeginGroup(screenRect); Vector2 mousePosition = Event.current.mousePosition; Vector2 vector = default(Vector2); Vector2 vector2 = default(Vector2); bool flag = false; List <SimpleCurveDrawInfo> simpleCurveDrawInfos = new List <SimpleCurveDrawInfo>(); foreach (SimpleCurveDrawInfo simpleCurveDrawInfo2 in curves) { if (simpleCurveDrawInfo2.curve.PointsCount != 0) { Vector2 vector3 = SimpleCurveDrawer.ScreenToCurveCoords(screenRect, viewRect, mousePosition); vector3.y = simpleCurveDrawInfo2.curve.Evaluate(vector3.x); Vector2 vector4 = SimpleCurveDrawer.CurveToScreenCoordsInsideScreenRect(screenRect, viewRect, vector3); if (!flag || Mathf.Approximately(Vector2.Distance(vector4, mousePosition), Vector2.Distance(vector2, mousePosition))) { flag = true; vector = vector3; vector2 = vector4; simpleCurveDrawInfos.Add(simpleCurveDrawInfo2); } else if (!flag || Vector2.Distance(vector4, mousePosition) < Vector2.Distance(vector2, mousePosition)) { flag = true; vector = vector3; vector2 = vector4; simpleCurveDrawInfos.Clear(); simpleCurveDrawInfos.Add(simpleCurveDrawInfo2); } } } GUI.EndGroup(); return(simpleCurveDrawInfos); }
// Token: 0x06001E03 RID: 7683 RVA: 0x000BCB34 File Offset: 0x000BAD34 private static IEnumerable <int> PointsNearMouse(Rect screenRect, SimpleCurve curve, Vector2 mousePosition) { GUI.BeginGroup(screenRect); try { int num; for (int i = 0; i < curve.PointsCount; i = num + 1) { if ((SimpleCurveDrawer.CurveToScreenCoordsInsideScreenRect(screenRect, curve.View.rect, curve[i].Loc) - mousePosition).sqrMagnitude < 49f) { yield return(i); } num = i; } } finally { GUI.EndGroup(); } yield break; }