コード例 #1
0
        public void OutputAllMergedActions(
            EdgePredecessorRecorderVisitor erec,
            GraphvizAlgorithm gw,
            string path)
        {
            int i=1000;

            Console.WriteLine("All paths (merged):");
            foreach(EdgeCollection ec in erec.AllMergedPaths())
            {
                CurrentEdgePath = ec;
                gw.Write(String.Format("path-merged{1}",path,i));
                foreach(IEdge edge in ec)
                {
                    Console.WriteLine("{0}->{1}, {2}",
                        ((NamedVertex)edge.Source).Name,
                        ((NamedVertex)edge.Target).Name,
                        ((NamedEdge)edge).Name
                        );
                }
                ++i;
                Console.WriteLine();
            }
            CurrentEdgePath=null;
        }
コード例 #2
0
 /// <summary>
 /// Output end of path edges
 /// </summary>
 /// <param name="erec"></param>
 public void OutputEndPathEdges(EdgePredecessorRecorderVisitor erec)
 {
     // these are the edges that are terminal.
     Console.WriteLine("End path edges:");
     foreach(IEdge se in erec.EndPathEdges)
     {
         Console.WriteLine("\t{0}->{1}, {2}",
             ((NamedVertex)se.Source).Name,
             ((NamedVertex)se.Target).Name,
             ((NamedEdge)se).Name
             );
     }
 }
コード例 #3
0
        /// <summary>
        /// Add a predecessor recorder to the edge dfs algorithm.
        /// </summary>
        /// <param name="edfs"></param>
        /// <returns>predecessor recorder</returns>
        public EdgePredecessorRecorderVisitor AddPredecessorRecorder(EdgeDepthFirstSearchAlgorithm edfs)
        {
            // The visitor that will record actions path for us
            EdgePredecessorRecorderVisitor erec = new EdgePredecessorRecorderVisitor();
            edfs.DiscoverTreeEdge += new EdgeEdgeEventHandler(erec.DiscoverTreeEdge);
            edfs.FinishEdge += new EdgeEventHandler(erec.FinishEdge);

            return erec;
        }