import opengl\r
import opengl.rokuro\r
import mqobuilder\r
+import pmdbuilder\r
\r
\r
class Frame(tkinter.Frame):\r
menu_file.add_command(label='Open', under=0, command=self.onOpen)\r
\r
# setup opengl widget\r
- self.glworld=opengl.BaseController(opengl.rokuro.RokuroView(500))\r
+ self.view=opengl.rokuro.RokuroView()\r
+ self.glworld=opengl.BaseController(self.view)\r
self.glwidget=togl.Widget(self, self.glworld, width=width, height=height)\r
self.glwidget.pack(fill=tkinter.BOTH, expand=True)\r
\r
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.current=os.path.dirname(path)\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
+ print('load %s' % path)\r
+ print(model)\r
self.glworld.setRoot(model)\r
- print('loadMqo %s' % path)\r
+ bb=model.get_boundingbox()\r
+ print(bb)\r
+ self.view.look_bb(*bb)\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
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