OTL cross-ref parm callbacks break inside another OTL

   2696   1   0
User Avatar
Member
387 posts
Joined: July 2005
Offline
Hi,

Houdini 11.0.454, Linux x86_64 2.6.18-164.el5

A couple of guys here were messing around with an OTL which breaks when it's inside another OTL. Kind of strange. I've made a little demo / test-case. Making the inner OTL “editable” via the Type Properties didn't help. I was going to post this to the v11 beta forum, but it looks like that's closed now. It's probably worth SESI taking a look at what's happening.

The unusual thing going on here is the inner OTL has parms which cross-reference one another. That is, when you update one parm, there's a call-back which updates the other. This is done via an opparm() in the inner OTL. To demo this, i've made a simple “crate” with 2 parms on it; scale and position. Moving one changes the other.

When this crate is put into another OTL, named superCrate, this update/call-back breaks in various ways, depending on what you do to try to make it work! Generally i've seen one of the parms on the inner OTL gets blown-away. Eg change the superCrates OTL parm “crate1 a Translate Y” parm from 0.5, and the parm inside on crate1“a Scale Y” (being ch(“../crate1_asy”) ) gets cleared! Other times when it's all locked-up the update of the other parm (on the inner OTL) doesn't happen.

There's a hipfile and otl attached, which i made in /tmp/sc

cheers,
ben.

Attachments:
superCrate.otl (14.6 KB)
superCrate1.hip (49.7 KB)

''You're always doing this: reducing it to science. Why can't it be real?'' – Jackie Tyler
User Avatar
Member
4256 posts
Joined: July 2005
Offline
Use opparm -r in your callback.
if(coffees<2,round(float),float)
  • Quick Links