@@ -49,7 +49,7 @@ def __init__(self, minval=None, maxval=None, colormap: list | str = "matlab:jet"
4949 self .n_colors = 8
5050 self .uniforms = None
5151 self .sampler = None
52-
52+ self . _callbacks = []
5353 self .set_colormap (colormap )
5454
5555 def update (self , options : RenderOptions ):
@@ -82,12 +82,16 @@ def set_colormap(self, colormap: list | str):
8282
8383 self .colors = colormap
8484 self .set_needs_update ()
85+ for callback in self ._callbacks :
86+ callback ()
8587
8688 def set_n_colors (self , n_colors ):
8789 self .n_instances = 2 * n_colors
8890 if self .uniforms is not None :
8991 self .uniforms .n_colors = n_colors
9092 self .uniforms .update_buffer ()
93+ for callback in self ._callbacks :
94+ callback ()
9195
9296 def set_min_max (self , minval , maxval , set_autoscale = True ):
9397 self .minval = minval
@@ -98,20 +102,26 @@ def set_min_max(self, minval, maxval, set_autoscale=True):
98102 self .uniforms .min = minval
99103 self .uniforms .max = maxval
100104 self .uniforms .update_buffer ()
105+ for callback in self ._callbacks :
106+ callback ()
101107
102108 def set_min (self , minval ):
103109 self .minval = minval
104110 self .autoscale = False
105111 if self .uniforms is not None :
106112 self .uniforms .min = minval
107113 self .uniforms .update_buffer ()
114+ for callback in self ._callbacks :
115+ callback ()
108116
109117 def set_max (self , maxval ):
110118 self .maxval = maxval
111119 self .autoscale = False
112120 if self .uniforms is not None :
113121 self .uniforms .max = maxval
114122 self .uniforms .update_buffer ()
123+ for callback in self ._callbacks :
124+ callback ()
115125
116126 def get_bindings (self ):
117127 return [
@@ -169,6 +179,7 @@ def __init__(
169179 self ._position = position
170180 self ._width = width
171181 self ._height = height
182+ colormap ._callbacks .append (self .set_needs_update )
172183
173184 @property
174185 def position (self ):
0 commit comments