UnityEditor.HandleUtility.GetParametrization C# (CSharp) Method

GetParametrization() static private method

static private GetParametrization ( Vector2 x0, Vector2 x1, Vector2 x2 ) : float
x0 Vector2
x1 Vector2
x2 Vector2
return float
        internal static float GetParametrization(Vector2 x0, Vector2 x1, Vector2 x2)
        {
            Vector2 vector = x2 - x1;
            return -(Vector2.Dot(x1 - x0, x2 - x1) / vector.sqrMagnitude);
        }

Usage Example

示例#1
0
		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 vector = constraintDir;
			vector.y = -vector.y;
			Camera current = Camera.current;
			Vector2 vector2 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition));
			Vector2 vector3 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition + constraintDir * num));
			Vector2 x = dest;
			Vector2 x2 = src;
			float result;
			if (vector2 == vector3)
			{
				result = 0f;
			}
			else
			{
				x.y = -x.y;
				x2.y = -x2.y;
				float parametrization = HandleUtility.GetParametrization(x2, vector2, vector3);
				float parametrization2 = HandleUtility.GetParametrization(x, vector2, vector3);
				float num2 = (parametrization2 - parametrization) * num;
				result = num2;
			}
			return result;
		}
All Usage Examples Of UnityEditor.HandleUtility::GetParametrization