public static int FindNearest(Vector2 point, Transform cloudTransform, IEditablePoint points)
{
Ray ray = HandleUtility.GUIPointToWorldRay(point);
Dictionary <int, float> dictionary = new Dictionary <int, float>();
for (int i = 0; i < points.Count; i++)
{
float num = 0f;
Vector3 zero = Vector3.zero;
if (MathUtils.IntersectRaySphere(ray, cloudTransform.TransformPoint(points.GetPosition(i)), points.GetPointScale() * 0.5f, ref num, ref zero))
{
if (num > 0f)
{
dictionary.Add(i, num);
}
}
}
int result;
if (dictionary.Count <= 0)
{
result = -1;
}
else
{
IOrderedEnumerable <KeyValuePair <int, float> > source = from x in dictionary
orderby x.Value
select x;
result = source.First <KeyValuePair <int, float> >().Key;
}
return(result);
}