I'm pretty sure there's code in there that finds operators living on clusters and such, outside the scope of the stack.
On Fri, Jun 22, 2012 at 9:30 PM, Matt Lind <ml...@carbinestudios.com> wrote: > 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:* softimage-boun...@listproc.autodesk.com [mailto: > softimage-boun...@listproc.autodesk.com] *On Behalf Of *Bradley Gabe > *Sent:* Friday, June 22, 2012 6:22 PM > *To:* softimage@listproc.autodesk.com > *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 <ml...@carbinestudios.com> > 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**** > > **** > > **** > > **** > > ** ** >