Example #1
0
 public Point(AbstractVector iPosition, AbstractVector iVelocity, AbstractVector iAcceleration,Node iNode)
 {
     position=iPosition;
     node = iNode;
     velocity = iVelocity;
     acceleration = iAcceleration;
 }
Example #2
0
 public Edge(string iId, Node iSource, Node iTarget, EdgeData iData)
 {
     ID = iId;
     Source = iSource;
     Target = iTarget;
     Data = (iData != null) ? iData : new EdgeData();
     Directed = false;
 }
Example #3
0
 protected abstract void drawNode(Node iNode, AbstractVector iPosition);
Example #4
0
        public bool Equals(Node p)
        {
            // If parameter is null return false:
            if ((object)p == null)
            {
                return false;
            }

            // Return true if the fields match:
            return (ID == p.ID);
        }
 protected override void drawNode(Node iNode, AbstractVector iPosition)
 {
     //TODO: Change positions of line
     form.DrawBox(iNode,iPosition);
 }
Example #6
0
        public void Merge(Graph iMergeGraph)
        {
            foreach (Node n in iMergeGraph.nodes)
            {
                Node mergeNode = new Node(m_nextNodeId.ToString(), n.Data);
                AddNode(mergeNode);
                m_nextNodeId++;
                mergeNode.Data.origID=n.ID;
            }

            foreach (Edge e in iMergeGraph.edges)
            {
                Node fromNode = nodes.Find(delegate(Node n)
                {
                    if (e.Source.ID == n.Data.origID)
                    {
                        return true;
                    }
                    return false;
                });

                Node toNode = nodes.Find(delegate(Node n)
                {
                    if (e.Target.ID == n.Data.origID)
                    {
                        return true;
                    }
                    return false;
                });

                Edge tNewEdge = AddEdge(new Edge(m_nextEdgeId.ToString(), fromNode, toNode, e.Data));
                m_nextEdgeId++;
            }
        }
Example #7
0
 public void RemoveNode(Node iNode)
 {
     if (m_nodeSet.ContainsKey(iNode.ID))
     {
         m_nodeSet.Remove(iNode.ID);
     }
     nodes.Remove(iNode);
     DetachNode(iNode);
 }
Example #8
0
 public List<Edge> GetEdges(Node iNode1, Node iNode2)
 {
     if (m_adjacencySet.ContainsKey(iNode1.ID) && m_adjacencySet[iNode1.ID].ContainsKey(iNode2.ID))
     {
         return m_adjacencySet[iNode1.ID][iNode2.ID];
     }
     return null;
 }
Example #9
0
        public List<Edge> GetEdges(Node iNode)
        {
            List<Edge> retEdgeList = new List<Edge>();
            if (m_adjacencySet.ContainsKey(iNode.ID))
            {
                foreach (KeyValuePair<string, List<Edge>> keyPair in m_adjacencySet[iNode.ID])
                {
                    foreach (Edge e in keyPair.Value)
                    {
                        retEdgeList.Add(e);
                    }
                }
            }

            foreach (KeyValuePair<string, Dictionary<string, List<Edge>>> keyValuePair in m_adjacencySet)
            {
                if (keyValuePair.Key != iNode.ID)
                {
                    foreach (KeyValuePair<string, List<Edge>> keyPair in m_adjacencySet[keyValuePair.Key])
                    {
                        foreach (Edge e in keyPair.Value)
                        {
                            retEdgeList.Add(e);
                        }
                    }

                }
            }
            return retEdgeList;
        }
Example #10
0
 public void DetachNode(Node iNode)
 {
     edges.ForEach(delegate(Edge e)
     {
         if (e.Source.ID == iNode.ID || e.Target.ID == iNode.ID)
         {
             RemoveEdge(e);
         }
     });
     notify();
 }
Example #11
0
 public Node CreateNode(string label)
 {
     NodeData data = new NodeData();
     data.label = label;
     Node tNewNode = new Node(m_nextNodeId.ToString(), data);
     m_nextNodeId++;
     AddNode(tNewNode);
     return tNewNode;
 }
Example #12
0
 public Node CreateNode(NodeData data)
 {
     Node tNewNode = new Node(m_nextNodeId.ToString(), data);
     m_nextNodeId++;
     AddNode(tNewNode);
     return tNewNode;
 }
Example #13
0
        public Edge CreateEdge(Node iSource, Node iTarget, EdgeData iData = null)
        {
            if (iSource == null || iTarget == null)
                return null;

            Edge tNewEdge = new Edge(m_nextEdgeId.ToString(), iSource, iTarget, iData);
            m_nextEdgeId++;
            AddEdge(tNewEdge);
            return tNewEdge;
        }
Example #14
0
        public Node AddNode(Node iNode)
        {
            if (!m_nodeSet.ContainsKey(iNode.ID))
            {
                nodes.Add(iNode);
            }

            m_nodeSet[iNode.ID] = iNode;
            notify();
            return iNode;
        }