/// <summary> /// Joins two paths. The joint point is given by an atom /// which is shared by the two pathes. /// </summary> /// <param name="path1">First path to join</param> /// <param name="path2">Second path to join</param> /// <param name="atom">The atom which is the joint point</param> /// <returns>The newly formed longer path</returns> public static Path join(Path path1, Path path2, IAtom atom) { Path newPath = new Path(); Path tempPath = new Path(); if (path1[0] == atom) { path1.revert(); } newPath.AddRange(path1); if (path2[path2.Count - 1] == atom) { path2.revert(); } tempPath.AddRange(path2); tempPath.Remove(atom); newPath.AddRange(tempPath); return(newPath); }
/// <summary> /// Joins two paths. The joint point is given by an atom /// which is shared by the two pathes. /// </summary> /// <param name="path1">First path to join</param> /// <param name="path2">Second path to join</param> /// <param name="atom">The atom which is the joint point</param> /// <returns>The newly formed longer path</returns> public static Path join(Path path1, Path path2, IAtom atom) { Path newPath = new Path(); Path tempPath = new Path(); if (path1[0] == atom) { path1.revert(); } newPath.AddRange(path1); if (path2[path2.Count-1] == atom) { path2.revert(); } tempPath.AddRange(path2); tempPath.Remove(atom); newPath.AddRange(tempPath); return newPath; }