OSDN Git Service
(root)
/
meshio
/
pymeshio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix version
[meshio/pymeshio.git]
/
examples
/
pymeshviewer.py
diff --git
a/examples/pymeshviewer.py
b/examples/pymeshviewer.py
index
06146b3
..
b22e6c1
100644
(file)
--- a/
examples/pymeshviewer.py
+++ b/
examples/pymeshviewer.py
@@
-1,19
+1,35
@@
#!/usr/bin/env python
\r
# coding: utf-8
\r
#!/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
\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 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
\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.master.title('pymeshio viewer')
\r
self.current='.'
\r
# setup menu
\r
@@
-26,7
+42,8
@@
class Frame(tkinter.Frame):
menu_file.add_command(label='Open', under=0, command=self.onOpen)
\r
\r
# setup opengl widget
\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.glwidget=togl.Widget(self, self.glworld, width=width, height=height)
\r
self.glwidget.pack(fill=tkinter.BOTH, expand=True)
\r
\r
@@
-35,17
+52,25
@@
class Frame(tkinter.Frame):
self.bind('<MouseWheel>', lambda e: self.glworld.onWheel(-e.delta) and self.glwidget.onDraw())
\r
\r
def onOpen(self):
\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
filetypes=[
\r
- ('poloygon model files', '*.mqo;*.pmd'),
\r
+ ('poloygon model files', '*.mqo;*.pmd
;*.pmx
'),
\r
],
\r
initialdir=self.current)
\r
],
\r
initialdir=self.current)
\r
+ self.current=os.path.dirname(path)
\r
+ self.load(path)
\r
+
\r
+ def load(self, path):
\r
model=self.loadModel(path)
\r
if not model:
\r
print('fail to load %s' % path)
\r
return
\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('load %s' % path)
\r
print('load %s' % path)
\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
self.glwidget.onDraw()
\r
\r
def loadModel(self, path):
\r
@@
-53,6
+78,10
@@
class Frame(tkinter.Frame):
return mqobuilder.build(path)
\r
elif path.lower().endswith(".pmd"):
\r
return pmdbuilder.build(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
\r
def onKeyDown(self, event):
\r
key=event.keycode
\r
@@
-70,5
+99,7
@@
if __name__ == '__main__':
f = Frame(width=600, height=600)
\r
f.pack(fill=tkinter.BOTH, expand=True)
\r
f.focus_set()
\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
f.mainloop()
\r
\r