internal Graph IsomorphicShuffling(Random rnd) { Graph graph = new Graph(); int[] ariShuffle = new int[NodeCount]; for (int i = 0; i < NodeCount; i++) { ariShuffle[i] = i; } Shuffle <int>(ariShuffle, rnd); graph.InsertNodes(NodeCount); for (int inod = 0; inod < NodeCount; inod++) { int inodShuffled = ariShuffle[inod]; nNode nod = _nodes[inodShuffled]; foreach (eNode end in nod._edgesFrom.Values) { graph.InsertEdge(ariShuffle[PosFromId(end._idFrom)], ariShuffle[PosFromId(end._idTo)]); } } return(graph); }
public void DeleteEdge(int nidFrom, int nidTo) { nNode nodFrom = FindNode(nidFrom); nNode nodTo = FindNode(nidTo); eNode end = nodFrom.FindOutEdge(nidTo); nodFrom._edgesFrom.Remove(nidTo); nodTo._edgesTo.Remove(end); }
public int InsertNode(object attr) { nNode nod = new nNode(); nod._id = (int)(_nodes.Count); nod._attr = attr; _nodes.Add(nod._id, nod); return(nod._id); }
public void TestInsertNode() { Graph gr = new Graph(); gr.InsertNode(1); nNode nod = gr.FindNode(0); Assert.IsNotNull(nod); nod = gr.FindNode(1); Assert.IsTrue(false); }
public void DeleteNode(int nid) { nNode nod = FindNode(nid); eNode[] arend = new eNode[nod._edgesFrom.Count + nod._edgesTo.Count]; nod._edgesFrom.Values.CopyTo(arend, 0); nod._edgesTo.CopyTo(arend, nod._edgesFrom.Count); foreach (eNode end in arend) { DeleteEdge(end._idFrom, end._idTo); } _nodes.Remove(nod._id); }
public void InsertEdge(int nidFrom, int nidTo, object attr) { eNode end = new eNode(); nNode nodFrom = FindNode(nidFrom); nNode nodTo = FindNode(nidTo); end._idFrom = nidFrom; end._idTo = nidTo; end._attr = attr; try { nodFrom._edgesFrom.Add(nidTo, end); nodTo._edgesTo.Add(end); } catch (Exception) { VfException.Error("Inconsistent Data"); } }
public void TestFindNodeNotFound() { Graph gr = new Graph(); nNode nod = gr.FindNode(0); }
private void readNodesSection() { UInt32 size = bReader.ReadUInt32(); //Skip((int)size + 4); Skip(4); UInt32 nNodes = bReader.ReadUInt32(); Skip(4); for (UInt32 i = 0; i < nNodes; ++i) { Quaternion q = new Quaternion(bReader.ReadSingle(), bReader.ReadSingle(), bReader.ReadSingle(), bReader.ReadSingle()); Skip(16); Vector3 v = new Vector3(bReader.ReadSingle(), bReader.ReadSingle(), bReader.ReadSingle()); Skip(32); int p = bReader.ReadInt32(); Skip(76); int l = bReader.ReadInt32(); char[] cs = bReader.ReadChars(l); nNode n = new nNode(cs, q, v, (uint)p); Nodes.Add(n); } }