public void Draw()
        {
            if (aboutToBeDeleted && !connector.IsConnected())             // It's disconnected, don't mark it anymore
            {
                aboutToBeDeleted = false;
            }

            if (!connector.IsConnected())
            {
                return;
            }

#if UNITY_2018
            if (Event.current.rawType != EventType.Repaint)
#else
            if (Event.current.rawType != EventType.repaint)
#endif
            { return; }

            //Vector2 a = connector.GetConnectionPoint();
            //Vector2 b = connector.inputCon.GetConnectionPoint();
            int  cc          = connector.GetCompCount();
            bool isMatrix4x4 = (cc == 16);
            if (isMatrix4x4)
            {
                cc = 1;
            }

            Color color = DeleteImminent() ? new Color(1f, 0f, 0f, 0.7f) : connector.GetConnectionLineColor();

            // TEMP:
            ReconstructShapes();

            //GUILines.DrawStyledConnection( editor, a, b, cc,  color);


            //switch(SF_Settings.ConnectionLineStyle){
            //case ConnectionLineStyle.Bezier:
            if (isMatrix4x4)
            {
                //GUILines.DrawMatrixConnection( editor, connector.GetConnectionPoint(), connector.inputCon.GetConnectionPoint(), color );
                GUILines.DrawLines(editor, this[ConnectionLineStyle.Bezier, 0], color, GetConnectionWidth(), true);
                GUILines.DrawLines(editor, this[ConnectionLineStyle.Bezier, 1], color, GetConnectionWidth(), true, true);
                GUILines.DrawLines(editor, this[ConnectionLineStyle.Bezier, 2], color, GetConnectionWidth(), true);
            }
            else
            {
                for (int i = 0; i < cc; i++)
                {
                    GUILines.DrawLines(editor, this[ConnectionLineStyle.Bezier, i], color, GetConnectionWidth(), true);
                }
            }

            //break;
            //}
        }