private void MakeEdges(IGraphLoader <TV, TE> loader, int vid, Dictionary <VfEdge, VfEdge> dctEdge, List <int> mpIvtxGraphIvtxVf) { var ivtxGraph = loader.PosFromId(vid); var vfeKey = new VfEdge(mpIvtxGraphIvtxVf[ivtxGraph], 0, null); MakeOutEdges(loader, vid, dctEdge, mpIvtxGraphIvtxVf, ref vfeKey); MakeInEdges(loader, vid, dctEdge, mpIvtxGraphIvtxVf, ref vfeKey); }
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 <TV, TE> loader, int vid, Dictionary <VfEdge, VfEdge> dctEdge, List <int> mpIvtxGraphIvtxVf, ref VfEdge vfeKey) { for (var i = 0; i < loader.InEdgeCount(vid); i++) { TE attr; vfeKey.IvtxFrom = mpIvtxGraphIvtxVf[loader.PosFromId(loader.GetInEdge(vid, i, out attr))]; if (!dctEdge.ContainsKey(vfeKey)) { _inEdges[i] = dctEdge[vfeKey] = new VfEdge(vfeKey.IvtxFrom, vfeKey.IvtxTo, attr); vfeKey = new VfEdge(vfeKey.IvtxFrom, vfeKey.IvtxTo, null); } else { _inEdges[i] = dctEdge[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]; } } }