Merge pull request #402 from vladimir-kraus/develop
added method clear() to GLViewWidget
This commit is contained in:
commit
91ee83ab36
|
@ -16,7 +16,6 @@ class GLViewWidget(QtOpenGL.QGLWidget):
|
||||||
- Axis/grid display
|
- Axis/grid display
|
||||||
- Export options
|
- Export options
|
||||||
|
|
||||||
|
|
||||||
High-DPI displays: Qt5 should automatically detect the correct resolution.
|
High-DPI displays: Qt5 should automatically detect the correct resolution.
|
||||||
For Qt4, specify the ``devicePixelRatio`` argument when initializing the
|
For Qt4, specify the ``devicePixelRatio`` argument when initializing the
|
||||||
widget (usually this value is 1-2).
|
widget (usually this value is 1-2).
|
||||||
|
@ -32,25 +31,31 @@ class GLViewWidget(QtOpenGL.QGLWidget):
|
||||||
QtOpenGL.QGLWidget.__init__(self, parent, ShareWidget)
|
QtOpenGL.QGLWidget.__init__(self, parent, ShareWidget)
|
||||||
|
|
||||||
self.setFocusPolicy(QtCore.Qt.ClickFocus)
|
self.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||||
|
|
||||||
self.opts = {
|
self.opts = {
|
||||||
'center': Vector(0,0,0), ## will always appear at the center of the widget
|
'devicePixelRatio': devicePixelRatio
|
||||||
'distance': 10.0, ## distance of camera from center
|
|
||||||
'fov': 60, ## horizontal field of view in degrees
|
|
||||||
'elevation': 30, ## camera's angle of elevation in degrees
|
|
||||||
'azimuth': 45, ## camera's azimuthal angle in degrees
|
|
||||||
## (rotation around z-axis 0 points along x-axis)
|
|
||||||
'viewport': None, ## glViewport params; None == whole widget
|
|
||||||
'devicePixelRatio': devicePixelRatio,
|
|
||||||
}
|
}
|
||||||
self.setBackgroundColor('k')
|
self.reset()
|
||||||
self.items = []
|
self.items = []
|
||||||
|
|
||||||
self.noRepeatKeys = [QtCore.Qt.Key_Right, QtCore.Qt.Key_Left, QtCore.Qt.Key_Up, QtCore.Qt.Key_Down, QtCore.Qt.Key_PageUp, QtCore.Qt.Key_PageDown]
|
self.noRepeatKeys = [QtCore.Qt.Key_Right, QtCore.Qt.Key_Left, QtCore.Qt.Key_Up, QtCore.Qt.Key_Down, QtCore.Qt.Key_PageUp, QtCore.Qt.Key_PageDown]
|
||||||
self.keysPressed = {}
|
self.keysPressed = {}
|
||||||
self.keyTimer = QtCore.QTimer()
|
self.keyTimer = QtCore.QTimer()
|
||||||
self.keyTimer.timeout.connect(self.evalKeyState)
|
self.keyTimer.timeout.connect(self.evalKeyState)
|
||||||
|
|
||||||
self.makeCurrent()
|
self.makeCurrent()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
"""
|
||||||
|
Initialize the widget state or reset the current state to the original state.
|
||||||
|
"""
|
||||||
|
self.opts['center'] = Vector(0,0,0) ## will always appear at the center of the widget
|
||||||
|
self.opts['distance'] = 10.0 ## distance of camera from center
|
||||||
|
self.opts['fov'] = 60 ## horizontal field of view in degrees
|
||||||
|
self.opts['elevation'] = 30 ## camera's angle of elevation in degrees
|
||||||
|
self.opts['azimuth'] = 45 ## camera's azimuthal angle in degrees
|
||||||
|
## (rotation around z-axis 0 points along x-axis)
|
||||||
|
self.opts['viewport'] = None ## glViewport params; None == whole widget
|
||||||
|
self.setBackgroundColor('k')
|
||||||
|
|
||||||
def addItem(self, item):
|
def addItem(self, item):
|
||||||
self.items.append(item)
|
self.items.append(item)
|
||||||
|
@ -66,10 +71,21 @@ class GLViewWidget(QtOpenGL.QGLWidget):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def removeItem(self, item):
|
def removeItem(self, item):
|
||||||
|
"""
|
||||||
|
Remove the item from the scene.
|
||||||
|
"""
|
||||||
self.items.remove(item)
|
self.items.remove(item)
|
||||||
item._setView(None)
|
item._setView(None)
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
|
def clear(self):
|
||||||
|
"""
|
||||||
|
Remove all items from the scene.
|
||||||
|
"""
|
||||||
|
for item in self.items:
|
||||||
|
item._setView(None)
|
||||||
|
self.items = []
|
||||||
|
self.update()
|
||||||
|
|
||||||
def initializeGL(self):
|
def initializeGL(self):
|
||||||
self.resizeGL(self.width(), self.height())
|
self.resizeGL(self.width(), self.height())
|
||||||
|
@ -370,7 +386,6 @@ class GLViewWidget(QtOpenGL.QGLWidget):
|
||||||
#self.paintGL(region=region)
|
#self.paintGL(region=region)
|
||||||
#self.swapBuffers()
|
#self.swapBuffers()
|
||||||
|
|
||||||
|
|
||||||
def wheelEvent(self, ev):
|
def wheelEvent(self, ev):
|
||||||
delta = 0
|
delta = 0
|
||||||
if QT_LIB in ['PyQt4', 'PySide']:
|
if QT_LIB in ['PyQt4', 'PySide']:
|
||||||
|
@ -532,6 +547,4 @@ class GLViewWidget(QtOpenGL.QGLWidget):
|
||||||
glfbo.glDeleteFramebuffers([fb])
|
glfbo.glDeleteFramebuffers([fb])
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user