Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
 void IGraphFactory.CreateOrUpdateEdge(CdmEdge edgeNew)
 {
     // edgeNew contains all the interesting data about an edge
     Debug.Log("Edge received: " + edgeNew.EdgeIdFriendly);
 }