public void DrawNodeEditor(Rect LayoutPosition)
        {
            if (isSetupRequested)
            {
                Setup();
            }

            panelSize       = new Vector2(LayoutPosition.width, LayoutPosition.height);
            editorScrollPos = EditorGUILayout.BeginScrollView(editorScrollPos, false, false, GUILayout.Width(LayoutPosition.width), GUILayout.Height(LayoutPosition.height));
            GUILayoutOption[] options = { GUILayout.Width(editorScrollSize.x), GUILayout.Height(editorScrollSize.y) };
            EditorGUILayout.LabelField("", options);
            var backgroundTint = Color.white;

            if (isInstance && constellationScript.IsDifferentThanSource)
            {
                backgroundTint = Color.yellow;
            }
            Background.DrawBackgroundGrid(LayoutPosition.width, LayoutPosition.height, GetCurrentScrollPosX(), GetCurrentScrollPosY(), backgroundTint);
            NodeEditorNodes.DrawEditorNodes(editorScrollPos);
            NodeEditorLinks.DrawLinks();
            EditorGUILayout.EndScrollView();
            if (isInstance)
            {
                DrawInstancePannel();
            }
            editorScrollSize = new Vector2(NodeEditorNodes.GetFarNodeX() + 400, NodeEditorNodes.GetFarNodeY() + 400);
            nodeEditorSelection.Draw(NodeEditorNodes.GetNodes().ToArray(), GetLinks(), editorScrollPos, LayoutPosition);

            if (Event.current.button == 2)
            {
                editorScrollPos -= Event.current.delta * 0.5f;
                RequestRepaint();
            }
        }
 public void DrawNodeEditor(float _width, float _height)
 {
     panelSize       = new Vector2(_width, _height);
     editorScrollPos = EditorGUILayout.BeginScrollView(editorScrollPos, false, false, GUILayout.Width(_width), GUILayout.Height(_height));
     GUILayoutOption[] options = { GUILayout.Width(editorScrollSize.x), GUILayout.Height(editorScrollSize.y) };
     EditorGUILayout.LabelField("", options);
     GUI.SetColor(new Color(25, 25, 25));
     GUI.DrawTexture(new Rect(0, 0, _width, _height), Texture2D.blackTexture);
     GUI.SetColor(Color.white);
     if (Background != null)
     {
         for (var i = 0; i < 50; i++)
         {
             for (var j = 0; j < 25; j++)
             {
                 Rect texRect = new Rect(i * Background.width,
                                         j * Background.height,
                                         Background.width, Background.height);
                 GUI.DrawTexture(texRect, Background);
             }
         }
     }
     DrawEditorNodes();
     LinksView.DrawLinks();
     DrawIncompleteLink();
     EditorGUILayout.EndScrollView();
     editorScrollSize = new Vector2(farNodeX + 400, farNodeY + 400);
     nodeEditorSelection.Draw(Nodes.ToArray(), LinksView.GetLinks(), editorScrollPos);
 }
        public void DrawNodeEditor(float _width, float _height)
        {
            panelSize = new Vector2(_width, _height);

            editorScrollPos = EditorGUILayout.BeginScrollView(editorScrollPos, false, false, GUILayout.Width(_width), GUILayout.Height(_height));
            GUILayoutOption[] options = { GUILayout.Width(editorScrollSize.x), GUILayout.Height(editorScrollSize.y) };
            EditorGUILayout.LabelField("", options);

            DrawBackgroundGrid(_width, _height);
            DrawEditorNodes();
            LinksView.DrawLinks();
            DrawIncompleteLink();

            EditorGUILayout.EndScrollView();
            editorScrollSize = new Vector2(farNodeX + 400, farNodeY + 400);
            nodeEditorSelection.Draw(Nodes.ToArray(), LinksView.GetLinks(), editorScrollPos);
        }