public override void AddEdge(CdmEdge e) { CdmEdgeEth ee = e as CdmEdgeEth; // Here is where you can add an edge to a Eth graph in an Eth specific way _edges.Add(ee); }
/// <summary> /// Create a new edge game object, or update an existing one. New edges get added to _graphIndex list. /// </summary> void IGraphFactory.CreateOrUpdateEdge(CdmEdge edgeNew) { CdmEdgeBtc edgeNewBtc = edgeNew as CdmEdgeBtc; // Do we exist already? GameObject edgeExistingGo; if (_graphIndex.TryGetValue(edgeNewBtc.EdgeId, out edgeExistingGo)) { UpdateExistingEdgeGoData(edgeExistingGo, edgeNewBtc); return; } // We are new. Do necessary nodes exist? GameObject sourceGo; bool sourceExists = _graphIndex.TryGetValue(edgeNewBtc.NodeSourceId, out sourceGo); GameObject targetGo; bool targetExists = _graphIndex.TryGetValue(edgeNewBtc.NodeTargetId, out targetGo); if (!sourceExists || !targetExists) { Msg.LogWarning("GraphFactory.CreateEdge cannot create edge because source or target GameObject dont exist yet"); return; } // Do it GameObject createdEdge = null; //Msg.Log("GraphFactory.CreateEdge: Edge about to be created: " + edgeNewBtc.EdgeId); createdEdge = InstantiateEdge(edgeNewBtc.EdgeId, edgeNewBtc.EdgeIdFriendly, edgeNewBtc.EdgeNumberInSource, edgeNewBtc.EdgeNumberInTarget, sourceGo, targetGo, edgeNewBtc.EdgeType, true, edgeNewBtc.ValueInSource, edgeNewBtc.ValueInTarget); if (createdEdge == null) { Msg.LogWarning("GraphFactory.CreateEdge: Edge not created."); } else { Msg.Log("GraphFactory.GenerateEdge: Edge created: " + createdEdge.gameObject.name); GraphEdgeBrain geb = createdEdge.GetComponent <GraphEdgeBrain>(); if (geb != null) { geb.CdmEdgeBtc = edgeNewBtc; } // index it _graphIndex.Add(edgeNewBtc.EdgeId, createdEdge); } }
void IGraphFactory.CreateOrUpdateEdge(CdmEdge edgeNew) { // edgeNew contains all the interesting data about an edge Debug.Log("Edge received: " + edgeNew.EdgeIdFriendly); }