That way I can be aware of parameters changing inside state. I'm just wondering if there's another way to do that (this one looks cumbersome)?
I want exactly the node parameter, not a parameter bound via hou.ViewerStateTemplate.bindParameter() (or may be a way that I can bind existing node parm to the state so I'd receive onParmChangeEvent)
This is how it's done in the $HH/viewer_states/examples/advanced_drawable_demo.hip scene:
defonEnter(self,kwargs):node=kwargs['node']ifnotself.geometry:self.geometry=node.geometry()ifself.geometry:self.line.setGeometry(self.geometry)self.face.setGeometry(self.geometry)self.point.setGeometry(self.geometry)self.vector.setGeometry(self.geometry)self.cursor_text.show(True)node.addEventCallback([hou.nodeEventType.ParmTupleChanged],self.updateNodeParmCB)defupdateNodeParmCB(self,**kwargs):""" Update the ramp dirty cache when a node ramp parm is modified """parm=kwargs['parm_tuple'][0]ifparm.name()inself.ramp_dirty.keys():self.ramp_dirty[parm.name()]=Trueelifparm.name().startswith('cramp_face'):self.ramp_dirty['cramp_face']=True