internal static float DistanceToDiamondInternal(Vector3 position, Quaternion rotation, float size, Vector2 mousePosition)
{
Vector3 vector = (Vector3) (rotation * new Vector3(size, 0f, 0f));
Vector3 vector2 = (Vector3) (rotation * new Vector3(0f, size, 0f));
points[0] = (Vector3) WorldToGUIPoint(position + vector);
points[1] = (Vector3) WorldToGUIPoint(position - vector2);
points[2] = (Vector3) WorldToGUIPoint(position - vector);
points[3] = (Vector3) WorldToGUIPoint(position + vector2);
points[4] = points[0];
Vector2 p = mousePosition;
bool flag = false;
int index = 4;
for (int i = 0; i < 5; i++)
{
if (((points[i].y > p.y) != (points[index].y > p.y)) && (p.x < ((((points[index].x - points[i].x) * (p.y - points[i].y)) / (points[index].y - points[i].y)) + points[i].x)))
{
flag = !flag;
}
index = i;
}
if (!flag)
{
float num4 = -1f;
index = 1;
for (int j = 0; j < 4; j++)
{
float num3 = DistancePointToLineSegment(p, points[j], points[index++]);
if ((num3 < num4) || (num4 < 0f))
{
num4 = num3;
}
}
return num4;
}
return 0f;
}