#!/usr/bin/env python\r
# coding: utf-8\r
+"""\r
+this script require pyOpenGL, PIL, numpy and Togl(tck/tk).\r
+\r
+Togl install on Windows\r
+=======================\r
+\r
+* download Togl2.0-8.4-Windows.zip\r
+* copy Togl2.0-8.4-Windows/lib/Togl2.0 to C:/PythonXX/tcl/Togl2.0\r
+"""\r
\r
import sys\r
import os\r
-import tkinter\r
-import tkinter.filedialog\r
+try:\r
+ import tkinter\r
+ import tkinter.filedialog as tkinter_filedialog\r
+except ImportError as e:\r
+ import Tkinter as tkinter\r
+ import tkFileDialog as tkinter_filedialog\r
import togl\r
import opengl\r
import opengl.rokuro\r
import mqobuilder\r
import pmdbuilder\r
+import pmxbuilder\r
\r
\r
class Frame(tkinter.Frame):\r
def __init__(self, width, height, master=None, **kw):\r
- super(Frame, self).__init__(master, **kw)\r
+ #super(Frame, self).__init__(master, **kw)\r
+ tkinter.Frame.__init__(self, master, **kw)\r
self.master.title('pymeshio viewer')\r
self.current='.'\r
# setup menu\r
self.bind('<MouseWheel>', lambda e: self.glworld.onWheel(-e.delta) and self.glwidget.onDraw())\r
\r
def onOpen(self):\r
- path=tkinter.filedialog.askopenfilename(\r
+ path=tkinter_filedialog.askopenfilename(\r
filetypes=[\r
- ('poloygon model files', '*.mqo;*.pmd'),\r
+ ('poloygon model files', '*.mqo;*.pmd;*.pmx'),\r
], \r
initialdir=self.current)\r
+ self.current=os.path.dirname(path)\r
self.load(path)\r
\r
def load(self, path):\r
if not model:\r
print('fail to load %s' % path)\r
return\r
- self.glworld.setRoot(model)\r
print('load %s' % path)\r
- self.view.look_bb(*model.get_boundingbox())\r
+ print(model)\r
+ self.glworld.setRoot(model)\r
+ bb=model.get_boundingbox()\r
+ print(bb)\r
+ self.view.look_bb(*bb)\r
self.glwidget.onDraw()\r
\r
def loadModel(self, path):\r
return mqobuilder.build(path)\r
elif path.lower().endswith(".pmd"):\r
return pmdbuilder.build(path)\r
+ elif path.lower().endswith(".pmx"):\r
+ return pmxbuilder.build(path)\r
+ else:\r
+ print("unknown file format: {0}".format(path))\r
\r
def onKeyDown(self, event):\r
key=event.keycode\r