I writing a custom StrokeState viewer state however I want to change the color of the cursor geometry to the current value the user is painting, instead of the default red. I'm able to change the StrokeCursor.COLOR value in the __init__ of my viewer state before I call self.cursor.init_brushlist which sets the color correctly however I can't seem to change it dynamically?
I've set up a callback to be notified when my stroke parameter changes with
node.addEventCallback([hou.nodeEventType.ParmTupleChanged], self.onParmChanged)
but I can't seem to change anything in the cursor's brush list and have it reflected in the viewport? I get that the brush list is an array of SimpleDrawables with read only geometry. So I've tried reconstructing new geometry the same way StrokeCursor::init_brushlist does, however calling setGeometry() on the brush doesn't seem to do anything. I've also tried enabling / disabling the brush and telling the viewport to draw although those didn't seem to have an effect either.
Is there something I am missing after setting the new geometry? Do I need to tell something to cook somewhere? I'm a little confused on where these SimpleDrawable geometries actually "live" since there is no sop node associated with them.