public EdgeView GetEdgeViewByPortIndex(int outportIndex) { string edgeViewId = SerializedNode .FindPropertyRelative(ANode.OutportsVarName) .GetArrayElementAtIndex(outportIndex) .FindPropertyRelative(OutportEdge.IdVarName) .stringValue; return(m_edgeViews[edgeViewId]); }
public void AddEdge(EdgeView edgeView) { if (edgeView.FirstPort.Node == this) { SerializedProperty outportsProp = SerializedNode.FindPropertyRelative(ANode.OutportsVarName); SerializedProperty newOutportProp = outportsProp.GetArrayElementAtIndex(edgeView.FirstPort.PortIndex); newOutportProp.FindPropertyRelative(OutportEdge.ConnectedNodeIdVarName).stringValue = edgeView.SecondPort.Node.NodeId; newOutportProp.serializedObject.ApplyModifiedProperties(); edgeView.OutportEdgeProp = newOutportProp; } AddEdgeView(edgeView); }
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 CreateOutports() { m_outports.Clear(); for (int j = 0; j < SerializedNode.FindPropertyRelative(ANode.OutportsVarName).arraySize; j++) { PortView newPort = new PortView(this, Orientation.Horizontal, Direction.Output, Port.Capacity.Single, typeof(bool), j, m_nodeViewDrawer.NodeColor, m_edgeConnectorListener); newPort.portName = ""; m_outports.Add(newPort); } }
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 void UpdateNodeDataPosition() { SerializedNode.FindPropertyRelative(ANode.PositionVarName).vector2Value = this.GetPosition().position; SerializedNode.serializedObject.ApplyModifiedProperties(); }
public bool OutportHasEdge(int outportIndex) { return(OutportEdge.IsValid(SerializedNode.FindPropertyRelative(ANode.OutportsVarName).GetArrayElementAtIndex(outportIndex))); }