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))); }