def __init__(self, app=None, canvas=None, scene=None): super(SceneController, self).__init__() self.canvas = canvas self.scene = scene self.app = app self.fixtures = [] self._max_pixels = 0 self._output_buffer = None self.show_center = False self._strand_keys = list() self._color_mode = self.app.config.get("color_mode") self._frame_data = {} self.strand_data = {} self.times = [] self.frame_start_time = 0.0 if self.canvas is not None: self.init_view() self._fixture_lookup_cache = self.scene.fixture_hierarchy() fixture_data = self.scene.get("fixtures", []) for fixture_data_item in fixture_data: f = Fixture(fixture_data_item, controller=self) self._fixture_lookup_cache[f.strand()][f.address()] = f self.fixtures.append(f) self.create_pixel_array()