mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-22 13:36:31 +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)
|
self.dfs(visitor=visitor, startNodes=[startNode], reverse=reverse)
|
||||||
return nodes, edges
|
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):
|
def nodesDependingOnNode(self, startNode, filterTypes=None):
|
||||||
nodes, edges = self.nodesFromNode(startNode, filterTypes=filterTypes, reverse=True)
|
nodes, edges = self.nodesFromNode(startNode, filterTypes=filterTypes, reverse=True)
|
||||||
return nodes
|
return nodes
|
||||||
|
|
|
@ -574,6 +574,12 @@ class BaseNode(BaseObject):
|
||||||
def minDepth(self):
|
def minDepth(self):
|
||||||
return self.graph.getDepth(self, minimal=True)
|
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):
|
def toDict(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue