diff --git a/examples/dokk/dokk.py b/examples/dokk/dokk.py index 46de08f32d77d52f120a806df982ba5ead8bd6d4..fce59b4cc6c2e2d3c4b18dae7d4aa408a6946766 100644 --- a/examples/dokk/dokk.py +++ b/examples/dokk/dokk.py @@ -4,5 +4,12 @@ from ost import io sdh=io.LoadPDB('../entity/sdh.pdb') go=gfx.Entity("sdh", sdh) scene.Add(go) + dokk_win=glwin.DokkGLWin() -dokk_win.Show() + +scene.CenterOn(go) + +if '--fullscreen' in sys.argv: + dokk_win.Show(fullscreen=True) +else: + dokk_win.Show(fullscreen=False) \ No newline at end of file diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py index 0cc5f4fc097bc6a9cfed8181ed3a20da127102b2..9c4dcedfbe3928a0ee37fa9ea45977985c1bc2ad 100644 --- a/examples/dokk/glwin.py +++ b/examples/dokk/glwin.py @@ -7,15 +7,44 @@ from PyQt4.QtOpenGL import * class DokkGLCanvas(QGLWidget): def __init__(self, format, parent=None): QGLWidget.__init__(self, format, parent) + self.last_pos_=QPoint() + self.setAutoFillBackground(False) def initializeGL(self): gfx.Scene().InitGL() def paintGL(self): gfx.Scene().RenderGL() + def paintEvent(self, event): + gfx.Scene().RenderGL() + painter=QPainter(self) + self.RenderHUD(painter) + def RenderHUD(self, painter): + painter.setPen(QColor(100, 100, 100, 50)) + painter.setBrush(QColor(200, 200, 200, 50)) + painter.drawRect(QRect(QPoint(0, 0), QSize(self.width(), 25))) + painter.setPen(QPen(QColor(255,255,255), Qt.SolidLine)) + painter.setFont(QFont("Verdana")) + painter.drawText(QPoint(10, 20), "Test Message") def resizeGL(self, w, h): gfx.Scene().Resize(w, h) + def mousePressEvent(self, event): + self.last_point_=QPoint(event.x(), event.y()) + + def mouseMoveEvent(self, event): + delta=QPoint(event.x(), event.y())-self.last_point_ + self.last_point_=QPoint(event.x(), event.y()) + if delta.y()!=0: + gfx.Scene().Apply(gfx.InputEvent(gfx.INPUT_DEVICE_MOUSE, + gfx.INPUT_COMMAND_ROTX, delta.y()*0.5), + False) + if delta.x()!=0: + gfx.Scene().Apply(gfx.InputEvent(gfx.INPUT_DEVICE_MOUSE, + gfx.INPUT_COMMAND_ROTY, delta.x()*0.5), + False) + self.update() + class DokkGLWin(gfx.GLWinBase): def _CreateFormat(self): fmt=QGLFormat() @@ -24,11 +53,13 @@ class DokkGLWin(gfx.GLWinBase): def __init__(self): gfx.GLWinBase.__init__(self) self.canvas_=DokkGLCanvas(self._CreateFormat()) - def DoRefresh(self): self.refresh_=True - - def Show(self): - self.canvas_.show() + + def Show(self, fullscreen): + if fullscreen: + self.canvas_.showFullScreen() + else: + self.canvas_.show() def SetStereo(): pass \ No newline at end of file