X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=examples%2Fpymeshviewer.py;h=29e7f48e5b2d110a3c91652de943cc61d6675de7;hb=5ba11b5ad53ce8feccba2c2b916569237fef6bb5;hp=061033c9daafb9a8c97099386431ecf72ab51128;hpb=f2381b1a90cf4781c5e3dbf9a6762e15ec63f39b;p=meshio%2Fpymeshio.git diff --git a/examples/pymeshviewer.py b/examples/pymeshviewer.py index 061033c..29e7f48 100644 --- a/examples/pymeshviewer.py +++ b/examples/pymeshviewer.py @@ -9,6 +9,7 @@ import togl import opengl import opengl.rokuro import mqobuilder +import pmdbuilder class Frame(tkinter.Frame): @@ -26,7 +27,8 @@ class Frame(tkinter.Frame): menu_file.add_command(label='Open', under=0, command=self.onOpen) # setup opengl widget - self.glworld=opengl.BaseController(opengl.rokuro.RokuroView(500)) + self.view=opengl.rokuro.RokuroView() + self.glworld=opengl.BaseController(self.view) self.glwidget=togl.Widget(self, self.glworld, width=width, height=height) self.glwidget.pack(fill=tkinter.BOTH, expand=True) @@ -35,29 +37,32 @@ class Frame(tkinter.Frame): self.bind('', lambda e: self.glworld.onWheel(-e.delta) and self.glwidget.onDraw()) def onOpen(self): - filename=tkinter.filedialog.askopenfilename( + path=tkinter.filedialog.askopenfilename( filetypes=[ ('poloygon model files', '*.mqo;*.pmd'), ], initialdir=self.current) - if filename.lower().endswith(".mqo"): - self.loadMqo(filename) - elif filename.lower().endswith(".pmd"): - self.loadPmd(filename) - self.current=os.path.dirname(filename) + self.current=os.path.dirname(path) + self.load(path) - def loadMqo(self, path): - # load scenee - model=mqobuilder.build(path) + def load(self, path): + model=self.loadModel(path) if not model: print('fail to load %s' % path) return + print('load %s' % path) + print(model) self.glworld.setRoot(model) - print('loadMqo %s' % path) + bb=model.get_boundingbox() + print(bb) + self.view.look_bb(*bb) self.glwidget.onDraw() - def loadPmd(self, path): - print('loadPmd %s' % path) + def loadModel(self, path): + if path.lower().endswith(".mqo"): + return mqobuilder.build(path) + elif path.lower().endswith(".pmd"): + return pmdbuilder.build(path) def onKeyDown(self, event): key=event.keycode @@ -75,5 +80,7 @@ if __name__ == '__main__': f = Frame(width=600, height=600) f.pack(fill=tkinter.BOTH, expand=True) f.focus_set() + if len(sys.argv)>1: + f.load(sys.argv[1]) f.mainloop()