[Closed] ExposeTransform Dependency Test
I want to create a script to find all nodes that have dependency with specific node. This is my first try:
-- Dependency Test Function:
All = #()
Searched = #()
fn RecursiveFind Obj =
(
if Obj != undefined and finditem Searched Obj == 0 do
(
appendifunique Searched Obj
for i = 1 to Obj.numsubs where (C = Obj[i].controller) != undefined do
(
deps = refs.dependents C
depsOn = refs.dependsOn C
loopTest = for o in objects where refs.dependencyLoopTest o C collect o
nodeTest = refs.dependentNodes C
for d in deps do appendifunique All d
for d in depsOn do appendifunique All d
for d in loopTest do appendifunique All d
for d in nodeTest do appendifunique All d
RecursiveFind C
)
if isvalidnode Obj do RecursiveFind Obj.parent
)
)
-- Find in Selection:
Obj = selection[1]
RecursiveFind Obj
-- Find Objects:
AllObjects = #()
for C in All do
(
for o in objects where refs.dependencyLoopTest o C do appendifunique AllObjects o
)
-- clearlistener()
select AllObjects
but the problem is some nodes like ExposeTransformHelper doesn’t have any public subanim for the node attribute. So my question is how I can find dependencies on attributes like this?
refs.dependencyLoopTest is absolutely enough to get any fact of dependency (at least between nodes).
It works only in one way:
TargetNode = teapot pos:[50,0,0]
ExNode = ExposeTm exposeNode:TargetNode
-- Works:
refs.dependencyLoopTest ExNode TargetNode
-- Doesn't Work:
refs.dependencyLoopTest TargetNode ExNode
I didn’t get your point , document says this function should check dependency between two max wrapper. I dont’t see any note about swaping inputs.
two nodes CANNOT depend on each other. other way it makes dependency loop.
so if any two nodes have dependency it means one node is a dependent and it depends on another.
so if refs.dependencyLoopTest node1 node2 says true, it means node1 depends on node2. And refs.dependencyLoopTest node2 node1 MUST be false