public float Process(BaseGraph graph) { float calculTime = 0f; bool realMode = graph.IsRealMode(); currentGraph = graph; hasProcessed = false; if (graph.GetComputeSortedNodes() == null) { graph.UpdateComputeOrder(); } try { foreach (var node in graph.GetComputeSortedNodes()) { //ignore unlinked nodes if (node.computeOrder < 0) { continue; } calculTime += ProcessNode(node, realMode); } } catch (Exception e) { Debug.LogError(e); return(calculTime); } hasProcessed = true; return(calculTime); }
public void ProcessOnce(BaseGraph graph) { if (graph.GetComputeSortedNodes() == null) { graph.UpdateComputeOrder(); } currentGraph = graph; foreach (var node in graph.GetComputeSortedNodes()) { //ignore unlinked nodes if (node.computeOrder < 0) { continue; } node.OnNodeProcessOnce(); ProcessNodeLinks(node, graph.IsRealMode()); } }
public float ProcessNodes(BaseGraph graph, List <BaseNode> nodes) { float calculTime = 0f; bool realMode = graph.IsRealMode(); currentGraph = graph; //sort nodes by compute order: nodes.Sort((n1, n2) => n1.computeOrder.CompareTo(n2.computeOrder)); foreach (var node in nodes) { if (node.computeOrder < 0) { continue; } calculTime += ProcessNode(node, realMode); } return(calculTime); }