//Proposition 4.15 internal void AttachToPrimeNode(PrimeNode primeNode, int xId) { MarkerVertex v = new MarkerVertex(); Leaf x = new Leaf() { id = xId, opposite = v, parent = primeNode, }; v.opposite = x; HashSet<MarkerVertex> list = new HashSet<MarkerVertex>(); primeNode.ForEachMarkerVertex((u) => { if (u.perfect) list.Add(u); return IterationFlag.Continue; }); primeNode.AddMarkerVertex(v, list); primeNode.lastMarkerVertex = v; AddLeaf(x); }