def __init__(self, *args, **kwargs): self.exit = kwargs.pop('exit', False) self.inputs_path = kwargs.pop('inputs_path', None) super(StillCanvas, self).__init__(*args, **kwargs) gloo.set_state(clear_color='black', blend=True, blend_func=('src_alpha', 'one_minus_src_alpha')) self.inputs = None if self.inputs_path is not None: self.input_manager = FileStoredInput(self.inputs_path) self.time = self.input_manager.stored_time definition = Definitions[self.input_manager.stored_definition_name] else: self.input_manager = RandomInput() self.time = float(random.randint(0, 345212312)) definition = Definitions[random.choice(Definitions.keys())] self.fractal = FractalProgram(definition, mask=False) self.apply_zoom() self._timer = app.Timer(1.0 / 5, connect=self.update, start=True) if self.exit: app.Timer(1, connect=self.write_and_exit, start=True, iterations=1) # self.update(None) # self.update(None) self.show()
def rotate(self, event=None): definition = Definitions[Definitions.keys()[self.definition_position % len(Definitions.keys())]] self.fractal = FractalProgram(definition, mask=self.show_mask) if self.inputs: self.fractal.adjust(self.inputs) self.apply_zoom() # Only rotate the user tracker if there aren't users actively interacting if (not self.input_manager) or not self.input_manager.tracking_users: if self.fake_inputs: self.input_manager = FakeInput() else: input_manager_index = (self.input_position / 2) % len(KIOSK_INPUTS) # random.choice(range(len(KIOSK_INPUTS))) self.input_manager = KIOSK_INPUTS[input_manager_index]() self.mask['tipColorSelector'] = input_manager_index / float(len(KIOSK_INPUTS)) print "Rotated to %s feeding %s" % (self.input_manager, definition['name']) self.definition_position += 1 self.input_position += 1