예제 #1
0
파일: Graph.cs 프로젝트: JanMMeyer/Graph3d
 void addEdge(IEdge edge)
 {
     edgesDict.Add(edge.GetId(), edge);
     EventPublisher.Publish(new EIGraphElementAdded <IEdge>(edge));
 }
예제 #2
0
        public EdgeAvatar(GameObject nodeAvatarPrefab, IEdge edge)
        {
            this.gameObject = MonoBehaviour.Instantiate(nodeAvatarPrefab, Vector3.zero, Quaternion.identity);

            MBEdgeAvatar mbEdegAvatar = this.gameObject.GetComponent <MBEdgeAvatar>();
            INode        source       = edge.GetSourceNode();
            INode        target       = edge.GetTargetNode();
            IAvatar      sourceAvatar;
            IAvatar      targetAvatar;

            if (source.TryGetAvatar(out sourceAvatar) && target.TryGetAvatar(out targetAvatar) && mbEdegAvatar != null)
            {
                this.sourceNodeAvatar = (INodeAvatar)sourceAvatar;
                this.targetNodeAvatar = (INodeAvatar)targetAvatar;

                mbEdegAvatar.SetSourceNodeAvatar(this.sourceNodeAvatar);
                mbEdegAvatar.SetTargetNodeAvatar(this.targetNodeAvatar);
            }
            else
            {
                G3DLogger.Log("Missing component in edge {0}, avatar constructor failed.", edge.GetId());
                this.SelfDestruct();
            }
        }