public static float CalcLineTranslation(Vector2 src, Vector2 dest, Vector3 srcPosition, Vector3 constraintDir)
{
srcPosition = Handles.matrix.MultiplyPoint(srcPosition);
constraintDir = Handles.matrix.MultiplyVector(constraintDir);
float num = 1f;
Vector3 forward = Camera.current.transform.forward;
if (Vector3.Dot(constraintDir, forward) < 0f)
{
num = -1f;
}
Vector3 vector2 = constraintDir;
vector2.y = -vector2.y;
Camera current = Camera.current;
Vector2 vector3 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition));
Vector2 vector4 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition + ((Vector3) (constraintDir * num))));
Vector2 vector5 = dest;
Vector2 vector6 = src;
if (vector3 == vector4)
{
return 0f;
}
vector5.y = -vector5.y;
vector6.y = -vector6.y;
float num3 = GetParametrization(vector6, vector3, vector4);
return ((GetParametrization(vector5, vector3, vector4) - num3) * num);
}