示例#1
0
        /// <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);
        }
示例#2
0
 /// <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;
 }