rossellison's picture
Upload 159 files
8a860df
import imgui
from gui_utils import imgui_utils
# ----------------------------------------------------------------------------
class ClassWidget:
def __init__(self, viz):
self.viz = viz
self.cls = 0
self.animate = False
self.count = 0
@imgui_utils.scoped_by_object_id
def __call__(self, show=True):
viz = self.viz
cls = self.cls
if show:
imgui.text('Class')
imgui.same_line(viz.label_w)
with imgui_utils.grayed_out(not viz.result.get('is_conditional', False)):
_changed, self.cls = imgui.slider_int('##cls', self.cls, 0, viz.result.get('num_classes', 0) - 1)
imgui.same_line()
_clicked, self.animate = imgui.checkbox('Anim##cls', self.animate)
imgui.same_line()
if imgui_utils.button('Reset', width=-1, enabled=(cls != self.cls or self.animate)):
self.cls = 0
self.animate = False
self.count = 0
if self.animate:
self.count += self.viz.frame_delta
if self.count > 1.5: # Update the class every 1.5 seconds; arbitrary, change as you will
self.cls = (self.cls + 1) % viz.result.get('num_classes') # Loop back
self.count = 0
# Sanity check when loading new networks
self.cls = min(self.cls, viz.result.get('num_classes', 1) - 1)
viz.args.update(cls=self.cls)