Correct me if I'm wrong, but it appears your code only deals with the construction history. It doesn't consider cases where the custom operator lives elsewhere such as my example.
Matt From: [email protected] [mailto:[email protected]] On Behalf Of Bradley Gabe Sent: Friday, June 22, 2012 6:22 PM To: [email protected] Subject: Re: Finding custom operators in a scene You might find some utility in the subroutines inside the Sanity Checker Plugin: https://docs.google.com/open?id=0B1YpeWdrXDofNDE0NGY0ZWMtNjZkNC00YTYxLTkyMDUtZTY5YjQyYWU5M2Y3 It's in Python, but OM is OM. On Fri, Jun 22, 2012 at 8:37 PM, Matt Lind <[email protected]<mailto:[email protected]>> wrote: Tricky problem I'm trying to solve. I know I can find all the custom operators in the scene with FindObjects() and traverse operator output ports to find out where the operator is connected, but in this particular case I need to go the opposite direction. The problem I need to solve is: Given an arbitrary object in the scene, determine if it has a custom operator applied to it. In my test cases I have used FindObjects() to locate the custom operators and print out their output port connections. In nearly all instances the custom operator doesn't show up in the scene explorer where the output port claims it should be. Example: A custom operator which drives the translation U and V (projtrsu, projtrsv) parameters of a texture projection Def property. When I query those parameters for their sources, they return a reference to the custom operator driving them. When I query the custom operator's output ports, they say the operator lives on the texture projection def property. Yet when I open the scene explorer and navigate to the texture projection def property, no operator is found. Instead an instance is nested below each parameter connected to the output ports. Illustration from scene explorer: PolygonMesh Primitive Clusters SampleCluster Texture_Projection Texture_Projection_Def (CustomOperator.FullName points here) Projscl Projrot Projtrs Projtrsu CustomOperator (actual location) Projtrsv CustomOperator (actual location) When I query the Texture Projection Def's various collections (Properties, NestedObjects, ...), the custom operator is nowhere to be found. So given an arbitrary scene object, how do I determine if it has a custom operator other than resorting to FindObjects()? Matt

