IndexedGraph <string, Orbit> BuildOrbits(Dictionary <string, string> orbitsDef) { var orbits = new IndexedGraph <string, Orbit>(); orbits["COM"] = new Orbit("COM"); foreach (var orbit in orbitsDef.Keys) { orbits[orbit] = new Orbit(orbit); } foreach (var orbit in orbitsDef) { orbits.AddParentChildLink(orbit.Value, orbit.Key); } orbits.Root = orbits["COM"]; return(orbits); }