mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-20 04:26:28 +02:00
[core] Graph/Node: getInputNodes and getOutputNodes methods
This commit is contained in:
parent
f41565f26b
commit
11e68e77ed
2 changed files with 22 additions and 0 deletions
|
@ -900,6 +900,22 @@ class Graph(BaseObject):
|
|||
self.dfs(visitor=visitor, startNodes=[startNode], reverse=reverse)
|
||||
return nodes, edges
|
||||
|
||||
def getInputNodes(self, node, recursive=False):
|
||||
""" Return either the first level input nodes of a node or the whole chain. """
|
||||
if not recursive:
|
||||
return set([edge.src.node for edge in self.edges if edge.dst.node is node])
|
||||
|
||||
inputNodes, edges = self.nodesFromNode(node, filterTypes=None, reverse=False)
|
||||
return inputNodes[1:] # exclude current node
|
||||
|
||||
def getOutputNodes(self, node, recursive=False):
|
||||
""" Return either the first level output nodes of a node or the whole chain. """
|
||||
if not recursive:
|
||||
return set([edge.dst.node for edge in self.edges if edge.src.node is node])
|
||||
|
||||
outputNodes, edges = self.nodesFromNode(node, filterTypes=None, reverse=True)
|
||||
return outputNodes[1:] # exclude current node
|
||||
|
||||
def nodesDependingOnNode(self, startNode, filterTypes=None):
|
||||
nodes, edges = self.nodesFromNode(startNode, filterTypes=filterTypes, reverse=True)
|
||||
return nodes
|
||||
|
|
|
@ -574,6 +574,12 @@ class BaseNode(BaseObject):
|
|||
def minDepth(self):
|
||||
return self.graph.getDepth(self, minimal=True)
|
||||
|
||||
def getInputNodes(self, recursive=False):
|
||||
return self.graph.getInputNodes(self, recursive=recursive)
|
||||
|
||||
def getOutputNodes(self, recursive=False):
|
||||
return self.graph.getOutputNodes(self, recursive=recursive)
|
||||
|
||||
def toDict(self):
|
||||
pass
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue