1 #!/usr/bin/env python
\r
4 from OpenGL.GL import *
\r
6 from .baseview import *
\r
9 DELEGATE_PATTERN=re.compile('^on[A-Z]')
\r
11 class BaseController(object):
\r
12 def __init__(self, view, root):
\r
15 self.isInitialized=False
\r
19 def delegate(self, to):
\r
20 for name in dir(to):
\r
21 if DELEGATE_PATTERN.match(name):
\r
22 method = getattr(to, name)
\r
23 setattr(self, name, method)
\r
25 def onUpdate(*args):pass
\r
26 def onLeftDown(*args):pass
\r
27 def onLeftUp(*args):pass
\r
28 def onMiddleDown(*args):pass
\r
29 def onMiddleUp(*args):pass
\r
30 def onRightDown(*args):pass
\r
31 def onRightUp(*args):pass
\r
32 def onMotion(*args):pass
\r
33 def onResize(*args):pass
\r
34 def onWheel(*args):pass
\r
35 def onKeyDown(*args):pass
\r
36 def onInitialize(*args):pass
\r
38 def initialize(self):
\r
39 self.view.onResize()
\r
40 glEnable(GL_DEPTH_TEST)
\r
41 #
\8f\89\8aú
\89»
\8e\9e\82Ì
\8cÄ
\82Ñ
\8fo
\82µ
\r
45 if not self.isInitialized:
\r
47 self.isInitialized=True
\r
48 # OpenGL
\83o
\83b
\83t
\83@
\82Ì
\83N
\83\8a\83A
\r
49 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
\r
50 #
\93\8a\89e
\8ds
\97ñ
\82Ì
\83N
\83\8a\83A
\r
51 glMatrixMode(GL_PROJECTION)
\r
53 self.view.updateProjection()
\r
54 #
\83\82\83f
\83\8b\83r
\83\85\81[
\8ds
\97ñ
\82Ì
\83N
\83\8a\83A
\r
55 glMatrixMode(GL_MODELVIEW)
\r
58 self.view.updateView()
\r