public void RemoveEdge(EdgeView edgeView)
 {
     if (edgeView.FirstPort.Node == this)
     {
         edgeView.FirstPort.Disconnect(edgeView);
         edgeView.SecondPort.Node.RemoveEdge(edgeView);
         m_nodeGraphView.RemoveElement(edgeView);
         m_edgeViews.Remove(edgeView.EdgeId);
         OutportEdge.SetInvalid(SerializedNode.FindPropertyRelative(ANode.OutportsVarName)
                                .GetArrayElementAtIndex(edgeView.FirstPort.PortIndex));
     }
     else if (edgeView.SecondPort.Node == this)
     {
         edgeView.SecondPort.Disconnect(edgeView);
     }
 }
        public void OnLoadView()
        {
            m_nodeGraphView.OnBlackboardElementChanged += HandleOnBlackboardElementChanged;

            SerializedProperty outports = SerializedNode.FindPropertyRelative(ANode.OutportsVarName);

            for (int k = 0; k < outports.arraySize; k++)
            {
                SerializedProperty outportProp = outports.GetArrayElementAtIndex(k);
                if (!OutportEdge.IsValid(outportProp))
                {
                    continue;
                }
                EdgeView edgeView = new EdgeView()
                {
                    OutportEdgeProp = outportProp,
                    input           = m_nodeGraphView.GetNodeViewById(outportProp.FindPropertyRelative(OutportEdge.ConnectedNodeIdVarName).stringValue).m_inport,
                    output          = m_outports[k],
                };
                edgeView.Setup();
                AddEdgeView(edgeView);
            }
        }
 public bool OutportHasEdge(int outportIndex)
 {
     return(OutportEdge.IsValid(SerializedNode.FindPropertyRelative(ANode.OutportsVarName).GetArrayElementAtIndex(outportIndex)));
 }