private void MakeEdges(IGraphLoader loader, int nid, Dictionary <VfeNode, VfeNode> dctEdge, int[] mpInodGraphInodVf) { int inodGraph = loader.PosFromId(nid); int inodVf = mpInodGraphInodVf[inodGraph]; VfeNode vfeKey = new VfeNode(0, 0, null); vfeKey._inodFrom = inodVf; MakeOutEdges(loader, nid, dctEdge, mpInodGraphInodVf, ref vfeKey); vfeKey._inodTo = inodVf; MakeInEdges(loader, nid, dctEdge, mpInodGraphInodVf, ref vfeKey); }
private void MakeInEdges(IGraphLoader loader, int nid, Dictionary <VfeNode, VfeNode> dctEdge, int[] mpInodGraphInodVf, ref VfeNode vfeKey) { object attr; for (int i = 0; i < loader.InEdgeCount(nid); i++) { vfeKey._inodFrom = mpInodGraphInodVf[loader.PosFromId(loader.GetInEdge(nid, i, out attr))]; if (!dctEdge.ContainsKey(vfeKey)) { _arvfeEdgeIn[i] = dctEdge[vfeKey] = new VfeNode(vfeKey._inodFrom, vfeKey._inodTo, attr); vfeKey = new VfeNode(vfeKey._inodFrom, vfeKey._inodTo, null); } else { _arvfeEdgeIn[i] = dctEdge[vfeKey]; } } }