def main(): parser = argparse.ArgumentParser() parser.add_argument('audiofiles', nargs='*') parser.add_argument('--norm', action='store_true', default=False, help='normalizes input audio') parser.add_argument('--info', '-i', action='store_true', default=False, help='prints info') parser.add_argument('--nogui', action='store_true', default=False, help='commandline mode') parser.add_argument('--play', action='store_true', default=False, help='plays on startup') parser.add_argument('--action', '-a') args = parser.parse_args() songs = [] for audiofile in args.audiofiles: # nomix.add_layer(audiofile) songs.append(open_song_from_file(audiofile)) # if args.norm: # for song in songs: # normalize(song) if args.info: for song in songs: print_info(song) return if args.nogui: return nanogui.init() nomix = NomixApp() i = 0 if songs: for song in songs: nomix.add_layer(str(i), song) i += 1 nomix.redraw_spect() nomix_set_status('[+] Initialized') print('[+] starting in gui mode') nomix.drawAll() nomix.setVisible(True) if args.play: nomix.engine.play(0) nanogui.mainloop() del nomix gc.collect() nanogui.shutdown()
def compare_voxel_grids(names, data): nanogui.init() app = VoxelGridViewer([x for x in zip(names, data)]) app.drawAll() app.setVisible(True) nanogui.mainloop() del app gc.collect() nanogui.shutdown()
def run_detached(): viewer = Viewer() time.sleep(2) # <-- otherwise I get a SIGSEGV: address boundary error h = ng.mainloop(detach=viewer.screen) h.join() viewer = None gc.collect() ng.shutdown()
gui.addGroup("Basic types") gui.addBoolVariable("bool", *make_accessors("bvar")) gui.addStringVariable("string", *make_accessors("strvar")) gui.addGroup("Validating fields") gui.addIntVariable("int", *make_accessors("ivar")) gui.addDoubleVariable("double", *make_accessors("dvar")).setSpinnable(True) gui.addGroup("Complex types") gui.addEnumVariable("Enumeration", *make_accessors("enumvar")) \ .setItems(["Item 1", "Item 2", "Item 3"]) gui.addColorVariable("Color", *make_accessors("colvar")) gui.addGroup("Other widgets") def cb(): print("Button pressed.") gui.addButton("A button", cb) screen.setVisible(True) screen.performLayout() window.center() nanogui.mainloop() screen = gui = window = None gc.collect() nanogui.shutdown()
return self.render_pass.resize(self.framebuffer_size()) s = self.size() with self.render_pass: mvp = nanogui.scale([s[1] / float(s[0]) * 0.25, 0.25, 0.25]) @ \ nanogui.rotate([0, 0, 1], glfw.getTime()) self.shader.set_buffer("mvp", np.float32(mvp.T)) with self.shader: self.shader.draw_array(Shader.PrimitiveType.Triangle, 0, 6, True) def keyboard_event(self, key, scancode, action, modifiers): if super(TestApp, self).keyboard_event(key, scancode, action, modifiers): return True if key == glfw.KEY_ESCAPE and action == glfw.PRESS: self.set_visible(False) return True return False if __name__ == "__main__": nanogui.init() test = TestApp() test.draw_all() test.set_visible(True) nanogui.mainloop(refresh=1 / 60.0 * 1000) del test gc.collect() nanogui.shutdown()
[0, 0, 1, 0], [0, 0, 0, 1]], dtype=np.float32 ) mvp[0:3, 0:3] *= 0.25 mvp[0, :] *= self.size()[1] / self.size()[0] self.shader.setUniform("modelViewProj", mvp) self.shader.drawIndexed(gl.TRIANGLES, 0, 2) super(TestApp, self).drawContents() def keyboardEvent(self, key, scancode, action, modifiers): if super(TestApp, self).keyboardEvent(key, scancode, action, modifiers): return True if key == glfw.KEY_ESCAPE and action == glfw.PRESS: self.setVisible(False) return True return False if __name__ == "__main__": nanogui.init() test = TestApp() test.drawAll() test.setVisible(True) nanogui.mainloop() del test gc.collect() nanogui.shutdown()
b.setCallback(cb) b = Button(window, "Quit") def cb2(): self.setVisible(False) b.setCallback(cb2) self.performLayout() if __name__ == "__main__": nanogui.init() test = TestApp() test.drawAll() test.setVisible(True) print("Launching detached mainloop") h = nanogui.mainloop(detach=test) print("Back in Python context") for i in range(10): print(i) time.sleep(1) if not nanogui.active(): break h.join() nanogui.shutdown()
b.set_callback(cb) b = Button(window, "Quit") def cb2(): self.set_visible(False) b.set_callback(cb2) self.perform_layout() if __name__ == "__main__": nanogui.init() test = TestApp() test.draw_all() test.set_visible(True) print("Launching detached mainloop") h = nanogui.mainloop(detach=test, refresh=0) print("Back in Python context") for i in range(10): print(i) time.sleep(1) if not nanogui.active(): break h.join() nanogui.shutdown()
print("pushed!") b.set_callback(cb) b = Button(window, "Quit") def cb2(): self.set_visible(False) b.set_callback(cb2) self.perform_layout() if __name__ == "__main__": nanogui.init() test = TestApp() test.draw_all() test.set_visible(True) print("Launching detached mainloop") h = nanogui.mainloop(detach=test, refresh=0) print("Back in Python context") for i in range(10): print(i) time.sleep(1) if not nanogui.active(): break h.join() nanogui.shutdown()
aspect=fbsize[0] / float(fbsize[1])) mvp = proj @ view @ model self.shader.set_buffer("mvp", np.float32(mvp.T)) with self.shader: self.shader.draw_array(Shader.PrimitiveType.Triangle, 0, 6, indexed=True) def keyboard_event(self, key, scancode, action, modifiers): if super(MyScreen, self).keyboard_event(key, scancode, action, modifiers): return True if key == glfw.KEY_ESCAPE and action == glfw.PRESS: self.set_visible(False) return True return False def resize_event(self, size): self.render_pass.resize(self.framebuffer_size()) super(MyScreen, self).resize_event(size) return True nanogui.init() s = MyScreen() s.set_visible(True) nanogui.mainloop(1 / 60.0 * 1000) nanogui.shutdown()
gui.add_string_variable('string', *make_accessors('strvar')) gui.add_string_variable( 'placeholder', *make_accessors('strvar2')).set_placeholder('placeholder') gui.add_group('Validating fields') gui.add_int_variable('int', *make_accessors('ivar')) gui.add_double_variable('double', *make_accessors('dvar')) gui.add_group('Complex types') gui.add_enum_variable('Enumeration', *make_accessors('enumvar')) \ .set_items(['Item 1', 'Item 2', 'Item 3']) gui.add_color_variable('Color', *make_accessors('colvar')) gui.add_group('Other widgets') def cb(): print('Button pressed.') gui.add_button('A button', cb) screen.set_visible(True) screen.perform_layout() window.center() nanogui.mainloop(refresh=0) screen = gui = window = None gc.collect() nanogui.shutdown()
#!/usr/bin/env python3 # Make sure to find pyVFRendering, nanogui and ovf if manually built # This is only needed if you did not install the package # # import sys # import os # pyVFRenderingDir = os.path.abspath(os.path.join(os.path.dirname( __file__ ), "VFRendering/build/Release")) # sys.path.insert(0, pyVFRenderingDir) # nanoguiDir = os.path.abspath(os.path.join(os.path.dirname( __file__ ), "nanogui/build/Release/python")) # sys.path.insert(0, nanoguiDir) # nanoguiDir = os.path.abspath(os.path.join(os.path.dirname( __file__ ), "ovf/python")) # sys.path.insert(0, nanoguiDir) import nanogui import gc from ui.main_window import MainWindow if __name__ == '__main__': nanogui.init() win = MainWindow(800, 600) win.setVisible(True) nanogui.mainloop(refresh=1000) del win gc.collect nanogui.shutdown()
b = Button(window, "Quit") def cb2(): global quit quit = True self.setVisible(False) b.setCallback(cb2) self.performLayout() if __name__ == "__main__": nanogui.init() test = TestApp() test.drawAll() test.setVisible(True) print("Launching detached mainloop") h = nanogui.mainloop(detach=test) print("Back in Python context") for i in range(10): print(i) time.sleep(1) if quit: break h.join() nanogui.shutdown()
[0, 0, 1, 0], [0, 0, 0, 1]], dtype=np.float32 ) mvp[0:3, 0:3] *= 0.25 mvp[0, :] *= self.size()[1] / self.size()[0] self.shader.set_uniform("model_view_proj", mvp) self.shader.draw_indexed(gl.TRIANGLES, 0, 2) super(TestApp, self).draw_contents() def keyboard_event(self, key, scancode, action, modifiers): if super(TestApp, self).keyboard_event(key, scancode, action, modifiers): return True if key == glfw.KEY_ESCAPE and action == glfw.PRESS: self.set_visible(False) return True return False if __name__ == "__main__": nanogui.init() test = TestApp() test.draw_all() test.set_visible(True) nanogui.mainloop(refresh=50) del test gc.collect() nanogui.shutdown()
def start(self): ng.mainloop()