public ConnectionDrawData(string id, SocketHandle port1, SocketHandle port2, UILineRendererWithListener lineRenderer)
 {
     this.id           = id;
     this.output       = port1;
     this.input        = port2;
     this.lineRenderer = lineRenderer;
 }
        public void Add(string connId, SocketHandle from, SocketHandle target)
        {
            var line    = CreateLine();
            var trigger = line.gameObject.AddComponent <LinePointerListener>();

            trigger.connId = connId;
            _connections.Add(connId, new ConnectionDrawData(connId, from, target, line));
        }
        //  drawing
        private void DrawConnection(SocketHandle port1, SocketHandle port2, UILineRendererWithListener lineRenderer)
        {
            var pointList = new List <Vector2>();

            for (float i = 0; i < vertexCount; i++)
            {
                var t = i / vertexCount;
                pointList.Add(Utility.CubicCurve(GetLocalPoint(port1.handle1.position),
                                                 GetLocalPoint(port1.handle2.position),
                                                 GetLocalPoint(port2.handle1.position),
                                                 GetLocalPoint(port2.handle2.position),
                                                 t));
            }

            lineRenderer.m_points = pointList.ToArray();
            lineRenderer.SetVerticesDirty();
        }
        private static void DrawDragging(SocketHandle port)
        {
            Vector2 localPointerPos;

            RectTransformUtility.ScreenPointToLocalPointInRectangle(_lineContainer, Input.mousePosition, null, out localPointerPos);
            _pointerLocator.localPosition = localPointerPos;

            var pointList = new List <Vector2>();

            for (float i = 0; i < 120; i++)
            {
                var t = i / 120;
                pointList.Add(Utility.QuadraticCurve(GetLocalPoint(port.handle1.position),
                                                     GetLocalPoint(port.handle2.position),
                                                     GetLocalPoint(_pointerLocator.position),
                                                     t));
            }

            _lineRenderer.m_points = pointList.ToArray();
            _lineRenderer.SetVerticesDirty();
        }