OSDN Git Service

implement pmdbuilder
[meshio/pymeshio.git] / examples / pymeshviewer.py
index 061033c..491433b 100644 (file)
@@ -9,6 +9,7 @@ import togl
 import opengl\r
 import opengl.rokuro\r
 import mqobuilder\r
+import pmdbuilder\r
 \r
 \r
 class Frame(tkinter.Frame):\r
@@ -35,29 +36,27 @@ class Frame(tkinter.Frame):
         self.bind('<MouseWheel>', lambda e: self.glworld.onWheel(-e.delta) and self.glwidget.onDraw())\r
 \r
     def onOpen(self):\r
-        filename=tkinter.filedialog.askopenfilename(\r
+        path=tkinter.filedialog.askopenfilename(\r
                 filetypes=[\r
                     ('poloygon model files', '*.mqo;*.pmd'),\r
                     ], \r
                 initialdir=self.current)\r
-        if filename.lower().endswith(".mqo"):\r
-            self.loadMqo(filename)\r
-        elif filename.lower().endswith(".pmd"):\r
-            self.loadPmd(filename)\r
-        self.current=os.path.dirname(filename)\r
+        self.load(path)\r
 \r
-    def loadMqo(self, path):\r
-        # load scenee\r
-        model=mqobuilder.build(path)\r
+    def load(self, path):\r
+        model=self.loadModel(path)\r
         if not model:\r
             print('fail to load %s' % path)\r
             return\r
         self.glworld.setRoot(model)\r
-        print('loadMqo %s' % path)\r
+        print('load %s' % path)\r
         self.glwidget.onDraw()\r
 \r
-    def loadPmd(self, path):\r
-        print('loadPmd %s' % path)\r
+    def loadModel(self, path):\r
+        if path.lower().endswith(".mqo"):\r
+            return mqobuilder.build(path)\r
+        elif path.lower().endswith(".pmd"):\r
+            return pmdbuilder.build(path)\r
 \r
     def onKeyDown(self, event):\r
         key=event.keycode\r
@@ -75,5 +74,7 @@ if __name__ == '__main__':
     f = Frame(width=600, height=600)\r
     f.pack(fill=tkinter.BOTH, expand=True)\r
     f.focus_set()\r
+    if len(sys.argv)>1:\r
+        f.load(sys.argv[1])\r
     f.mainloop()\r
 \r