public Point(AbstractVector iPosition, AbstractVector iVelocity, AbstractVector iAcceleration,Node iNode) { position=iPosition; node = iNode; velocity = iVelocity; acceleration = iAcceleration; }
public Edge(string iId, Node iSource, Node iTarget, EdgeData iData) { ID = iId; Source = iSource; Target = iTarget; Data = (iData != null) ? iData : new EdgeData(); Directed = false; }
protected abstract void drawNode(Node iNode, AbstractVector iPosition);
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); }
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++; } }
public void RemoveNode(Node iNode) { if (m_nodeSet.ContainsKey(iNode.ID)) { m_nodeSet.Remove(iNode.ID); } nodes.Remove(iNode); DetachNode(iNode); }
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; }
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; }
public void DetachNode(Node iNode) { edges.ForEach(delegate(Edge e) { if (e.Source.ID == iNode.ID || e.Target.ID == iNode.ID) { RemoveEdge(e); } }); notify(); }
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; }
public Node CreateNode(NodeData data) { Node tNewNode = new Node(m_nextNodeId.ToString(), data); m_nextNodeId++; AddNode(tNewNode); return tNewNode; }
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; }
public Node AddNode(Node iNode) { if (!m_nodeSet.ContainsKey(iNode.ID)) { nodes.Add(iNode); } m_nodeSet[iNode.ID] = iNode; notify(); return iNode; }