Beispiel #1
0
        public static (XDocument, AdjacencyGraph <Vertex, Edge <Vertex> >) ResolveCircuit(
            XDocument inputDoc, bool invertMemory, bool retainParallel)
        {
            OnProgressUpdate?.Invoke(0, "Extracting Component Graph...");
            AdjacencyGraph <Vertex, Edge <Vertex> > graph =
                inputDoc.CreateComponentGraph();

            graph.SolveUpdateOrder(out Vertex[] sortedVertices, invertMemory, retainParallel);
            inputDoc.UpdateSubmarineIDs(graph, sortedVertices);

            return(inputDoc, graph);
        }
Beispiel #2
0
        public static (XDocument, AdjacencyGraph <Vertex, Edge <Vertex> >) ResolveCircuit(
            string inputSub, bool invertMemory, bool retainParallel)
        {
            OnProgressUpdate?.Invoke(0, "Loading Submarine...");
            XDocument submarine = IoUtil.LoadSub(inputSub);

            OnProgressUpdate?.Invoke(0.2f, "Extracting Component Graph...");
            AdjacencyGraph <Vertex, Edge <Vertex> > graph =
                submarine.CreateComponentGraph();

            graph.SolveUpdateOrder(out Vertex[] sortedVertices, invertMemory, retainParallel);
            submarine.UpdateSubmarineIDs(graph, sortedVertices);

            return(submarine, graph);
        }