public static void DrawCurve(this OutputPin outputPin, Vector2 offSet, Vector2 targetPosition)
        {
            Rect rect = outputPin.m_rect;

            Vector3 startPosition = rect.position + Vector2.Scale(rect.size, new Vector2(1.0f, 0.5f)) + offSet;
            Vector3 endPosition   = targetPosition;

            Vector3 startTangente = startPosition + Vector3.right * 50;
            Vector3 endTangente   = endPosition + Vector3.left * 50;

            Handles.DrawBezier(startPosition, endPosition, startTangente, endTangente, Color.black, null, 2);
        }
        public static void DrawCurve(this OutputPin outputPin, Vector2 offSet)
        {
            Rect    outputPinRect = outputPin.m_rect;
            Vector3 startPosition = outputPinRect.position + Vector2.Scale(outputPinRect.size, new Vector2(1.0f, 0.5f)) + offSet;
            Vector3 startTangente = startPosition + Vector3.right * 50;

            foreach (var inputPin in outputPin.m_inputs)
            {
                Rect    inputPinRect = inputPin.m_rect;
                Vector3 endPosition  = inputPinRect.position + Vector2.Scale(inputPinRect.size, new Vector2(0.0f, 0.5f)) + offSet;
                Vector3 endTangente  = endPosition + Vector3.left * 50;

                Handles.DrawBezier(startPosition, endPosition, startTangente, endTangente, Color.black, null, 2);
            }
        }