def setupUi(self, MaterialsAndTextureDlg): MaterialsAndTextureDlg.setObjectName( _fromUtf8("MaterialsAndTextureDlg")) MaterialsAndTextureDlg.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/cmiss_icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) MaterialsAndTextureDlg.setWindowIcon(icon) self.gridLayout = QtGui.QGridLayout(MaterialsAndTextureDlg) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.pushButton = QtGui.QPushButton(MaterialsAndTextureDlg) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) self.sceneviewerwidget = SceneviewerWidget(MaterialsAndTextureDlg) self.sceneviewerwidget.setObjectName(_fromUtf8("_zincWidget")) self.gridLayout.addWidget(self.sceneviewerwidget, 0, 0, 1, 2) self.retranslateUi(MaterialsAndTextureDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), MaterialsAndTextureDlg.close) QtCore.QMetaObject.connectSlotsByName(MaterialsAndTextureDlg)
class Ui_MaterialsAndTextureDlg(object): def setupUi(self, MaterialsAndTextureDlg): MaterialsAndTextureDlg.setObjectName(_fromUtf8("MaterialsAndTextureDlg")) MaterialsAndTextureDlg.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/cmiss_icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) MaterialsAndTextureDlg.setWindowIcon(icon) self.gridLayout = QtGui.QGridLayout(MaterialsAndTextureDlg) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.pushButton = QtGui.QPushButton(MaterialsAndTextureDlg) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) self.sceneviewerwidget = SceneviewerWidget(MaterialsAndTextureDlg) self.sceneviewerwidget.setObjectName(_fromUtf8("_zincWidget")) self.gridLayout.addWidget(self.sceneviewerwidget, 0, 0, 1, 2) self.retranslateUi(MaterialsAndTextureDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), MaterialsAndTextureDlg.close) QtCore.QMetaObject.connectSlotsByName(MaterialsAndTextureDlg) def retranslateUi(self, MaterialsAndTextureDlg): MaterialsAndTextureDlg.setWindowTitle(_translate("MaterialsAndTextureDlg", "Materials", None)) self.pushButton.setText(_translate("MaterialsAndTextureDlg", "&Quit", None))
def initializeGL(self): ''' Initialise the Zinc scene for drawing the axis glyph at a point. ''' # Following throws exception if you haven't called setContext() yet SceneviewerWidget.initializeGL(self) if self._sceneviewer and self._sceneviewer.isValid(): scene = self._sceneviewer.getScene() graphics_filter = self._sceneviewer.getScenefilter() self._scenepicker = scene.createScenepicker() region = scene.getRegion() fieldmodule = region.getFieldmodule() self._selectionGroup = fieldmodule.createFieldGroup() scene.setSelectionField(self._selectionGroup) self._scenepicker = scene.createScenepicker() self._scenepicker.setScenefilter(graphics_filter) sceneFilterModule = self.getContext().getScenefiltermodule() self._sceneSurfacesFilter = sceneFilterModule.createScenefilterOperatorAnd() surfacesFilter = sceneFilterModule.createScenefilterGraphicsType(Graphics.TYPE_SURFACES) self._sceneSurfacesFilter.appendOperand(graphics_filter) self._sceneSurfacesFilter.appendOperand(surfacesFilter) self.createSelectionBox(scene)
class Ui_GlyphExportDlg(object): def setupUi(self, GlyphExportDlg): GlyphExportDlg.setObjectName(_fromUtf8("GlyphExportDlg")) GlyphExportDlg.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/cmiss_icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) GlyphExportDlg.setWindowIcon(icon) self.gridLayout = QtGui.QGridLayout(GlyphExportDlg) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.pushButton = QtGui.QPushButton(GlyphExportDlg) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) self.sceneviewerwidget = SceneviewerWidget(GlyphExportDlg) self.sceneviewerwidget.setObjectName(_fromUtf8("_zincWidget")) self.gridLayout.addWidget(self.sceneviewerwidget, 0, 0, 1, 2) self.retranslateUi(GlyphExportDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), GlyphExportDlg.close) QtCore.QMetaObject.connectSlotsByName(GlyphExportDlg) def retranslateUi(self, GlyphExportDlg): GlyphExportDlg.setWindowTitle( _translate("GlyphExportDlg", "BasicMesh", None)) self.pushButton.setText(_translate("GlyphExportDlg", "&Quit", None))
def initializeGL(self): ''' Initialise the Zinc scene for drawing the axis glyph at a point. ''' # Following throws exception if you haven't called setContext() yet SceneviewerWidget.initializeGL(self) if self._sceneviewer and self._sceneviewer.isValid(): scene = self._sceneviewer.getScene() graphics_filter = self._sceneviewer.getScenefilter() self._scenepicker = scene.createScenepicker() region = scene.getRegion() fieldmodule = region.getFieldmodule() self._selectionGroup = fieldmodule.createFieldGroup() scene.setSelectionField(self._selectionGroup) self._scenepicker = scene.createScenepicker() self._scenepicker.setScenefilter(graphics_filter) sceneFilterModule = self.getContext().getScenefiltermodule() self._sceneSurfacesFilter = sceneFilterModule.createScenefilterOperatorAnd( ) surfacesFilter = sceneFilterModule.createScenefilterGraphicsType( Graphics.TYPE_SURFACES) self._sceneSurfacesFilter.appendOperand(graphics_filter) self._sceneSurfacesFilter.appendOperand(surfacesFilter) self.createSelectionBox(scene)
class Ui_SimpleShadersDlg(object): def setupUi(self, SimpleShadersDlg): SimpleShadersDlg.setObjectName("SimpleShadersDlg") SimpleShadersDlg.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/cmiss_icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) SimpleShadersDlg.setWindowIcon(icon) self.gridLayout = QtGui.QGridLayout(SimpleShadersDlg) self.gridLayout.setObjectName("gridLayout") self.pushButton = QtGui.QPushButton(SimpleShadersDlg) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) self._sceneviewerwidget = SceneviewerWidget(SimpleShadersDlg) self._sceneviewerwidget.setObjectName("_sceneviewerwidget") self.gridLayout.addWidget(self._sceneviewerwidget, 0, 0, 1, 2) self.retranslateUi(SimpleShadersDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), SimpleShadersDlg.close) QtCore.QMetaObject.connectSlotsByName(SimpleShadersDlg) def retranslateUi(self, SimpleShadersDlg): SimpleShadersDlg.setWindowTitle( QtGui.QApplication.translate("SimpleShadersDlg", "Simple Shaders", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText( QtGui.QApplication.translate("SimpleShadersDlg", "&Quit", None, QtGui.QApplication.UnicodeUTF8))
def mouseMoveEvent(self, event): ''' Inform the scene viewer of a mouse move event and update the OpenGL scene to reflect this change to the viewport. ''' event.accept() if not self._ignore_mouse_events and self._selection_mode != SelectionMode.NONE: x = event.x() y = event.y() xdiff = float(x - self._selection_position_start[0]) ydiff = float(y - self._selection_position_start[1]) if abs(xdiff) < 0.0001: xdiff = 1 if abs(ydiff) < 0.0001: ydiff = 1 xoff = float(self._selection_position_start[0]) / xdiff + 0.5 yoff = float(self._selection_position_start[1]) / ydiff + 0.5 scene = self._selection_box.getScene() scene.beginChange() attributes = self._selection_box.getGraphicspointattributes() attributes.setBaseSize([xdiff, ydiff, 0.999]) attributes.setGlyphOffset([xoff, -yoff, 0]) self._selection_box.setVisibilityFlag(True) scene.endChange() elif not self._ignore_mouse_events and self._handle_mouse_events: SceneviewerWidget.mouseMoveEvent(self, event)
class Ui_AnimationDeformingHeartDlg(object): def setupUi(self, AnimationDeformingHeartDlg): AnimationDeformingHeartDlg.setObjectName( _fromUtf8("AnimationDeformingHeartDlg")) AnimationDeformingHeartDlg.resize(396, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/cmiss_icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) AnimationDeformingHeartDlg.setWindowIcon(icon) self.verticalLayout = QtGui.QVBoxLayout(AnimationDeformingHeartDlg) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.sceneviewerwidget = SceneviewerWidget(AnimationDeformingHeartDlg) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.sceneviewerwidget.sizePolicy().hasHeightForWidth()) self.sceneviewerwidget.setSizePolicy(sizePolicy) self.sceneviewerwidget.setObjectName(_fromUtf8("sceneviewerwidget")) self.verticalLayout.addWidget(self.sceneviewerwidget) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.playButton = QtGui.QPushButton(AnimationDeformingHeartDlg) self.playButton.setObjectName(_fromUtf8("playButton")) self.horizontalLayout_2.addWidget(self.playButton) self.timeSlider = QtGui.QSlider(AnimationDeformingHeartDlg) self.timeSlider.setMaximum(100) self.timeSlider.setOrientation(QtCore.Qt.Horizontal) self.timeSlider.setObjectName(_fromUtf8("timeSlider")) self.horizontalLayout_2.addWidget(self.timeSlider) self.verticalLayout.addLayout(self.horizontalLayout_2) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.pushButton = QtGui.QPushButton(AnimationDeformingHeartDlg) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.horizontalLayout.addWidget(self.pushButton) self.verticalLayout.addLayout(self.horizontalLayout) self.retranslateUi(AnimationDeformingHeartDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), AnimationDeformingHeartDlg.close) QtCore.QMetaObject.connectSlotsByName(AnimationDeformingHeartDlg) def retranslateUi(self, AnimationDeformingHeartDlg): AnimationDeformingHeartDlg.setWindowTitle( _translate("AnimationDeformingHeartDlg", "Deforming Heart", None)) self.playButton.setText( _translate("AnimationDeformingHeartDlg", "&Play", None)) self.pushButton.setText( _translate("AnimationDeformingHeartDlg", "&Quit", None))
def mousePressEvent(self, event): ''' Inform the scene viewer of a mouse press event. ''' event.accept() self._handle_mouse_events = False # Track when the zinc should be handling mouse events if not self._ignore_mouse_events and (event.modifiers() & self._selectionModifier) and (self._nodeSelectMode or self._elemSelectMode) and button_map[event.button()] == Sceneviewerinput.BUTTON_TYPE_LEFT: self._selection_position_start = (event.x(), event.y()) self._selection_mode = SelectionMode.EXCLUSIVE if event.modifiers() & self._additiveSelectionModifier: self._selection_mode = SelectionMode.ADDITIVE elif not self._ignore_mouse_events and not event.modifiers() or (event.modifiers() & self._selectionModifier and button_map[event.button()] == Sceneviewerinput.BUTTON_TYPE_RIGHT): SceneviewerWidget.mousePressEvent(self, event)
def __init__(self, parent=None, shared=None): # Selection attributes SceneviewerWidget.__init__(self, parent, shared) self._nodeSelectMode = False self._dataSelectMode = False self._1delemSelectMode = False self._2delemSelectMode = False self._elemSelectMode = False self._selection_mode = SelectionMode.NONE self._selectionGroup = None self._selection_box = None self._selectionModifier = QtCore.Qt.SHIFT self._additiveSelectionModifier = QtCore.Qt.ALT self._sceneSurfacesFilter = None self._handle_mouse_events = False
def mousePressEvent(self, event): ''' Inform the scene viewer of a mouse press event. ''' event.accept() self._handle_mouse_events = False # Track when the zinc should be handling mouse events if not self._ignore_mouse_events and ( event.modifiers() & self._selectionModifier ) and (self._nodeSelectMode or self._elemSelectMode) and button_map[ event.button()] == Sceneviewerinput.BUTTON_TYPE_LEFT: self._selection_position_start = (event.x(), event.y()) self._selection_mode = SelectionMode.EXCLUSIVE if event.modifiers() & self._additiveSelectionModifier: self._selection_mode = SelectionMode.ADDITIVE elif not self._ignore_mouse_events and not event.modifiers() or ( event.modifiers() & self._selectionModifier and button_map[event.button()] == Sceneviewerinput.BUTTON_TYPE_RIGHT): SceneviewerWidget.mousePressEvent(self, event)
def setupUi(self, BasicMeshDlg): BasicMeshDlg.setObjectName(_fromUtf8("BasicMeshDlg")) BasicMeshDlg.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/cmiss_icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) BasicMeshDlg.setWindowIcon(icon) self.gridLayout = QtGui.QGridLayout(BasicMeshDlg) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.pushButton = QtGui.QPushButton(BasicMeshDlg) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) self.sceneviewerwidget = SceneviewerWidget(BasicMeshDlg) self.sceneviewerwidget.setObjectName(_fromUtf8("_zincWidget")) self.gridLayout.addWidget(self.sceneviewerwidget, 0, 0, 1, 2) self.retranslateUi(BasicMeshDlg) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), BasicMeshDlg.close) QtCore.QMetaObject.connectSlotsByName(BasicMeshDlg)
def mouseReleaseEvent(self, event): ''' Inform the scene viewer of a mouse release event. ''' event.accept() if not self._ignore_mouse_events and self._selection_mode != SelectionMode.NONE: x = event.x() y = event.y() # Construct a small frustum to look for nodes in. top_region = self._sceneviewer.getScene().getRegion() top_region.beginHierarchicalChange() self._selection_box.setVisibilityFlag(False) if (x != self._selection_position_start[0] and y != self._selection_position_start[1]): left = min(x, self._selection_position_start[0]) right = max(x, self._selection_position_start[0]) bottom = min(y, self._selection_position_start[1]) top = max(y, self._selection_position_start[1]) self._scenepicker.setSceneviewerRectangle( self._sceneviewer, SCENECOORDINATESYSTEM_LOCAL, left, bottom, right, top) if self._selection_mode == SelectionMode.EXCLUSIVE: self._selectionGroup.clear() if self._nodeSelectMode or self._dataSelectMode: self._scenepicker.addPickedNodesToFieldGroup( self._selectionGroup) if self._elemSelectMode: self._scenepicker.addPickedElementsToFieldGroup( self._selectionGroup) else: self._scenepicker.setSceneviewerRectangle( self._sceneviewer, SCENECOORDINATESYSTEM_LOCAL, x - 3.5, y - 3.5, x + 3.5, y + 3.5) if self._nodeSelectMode and self._elemSelectMode and self._selection_mode == SelectionMode.EXCLUSIVE and not self._scenepicker.getNearestGraphics( ).isValid(): self._selectionGroup.clear() if self._nodeSelectMode and ( self._scenepicker.getNearestGraphics( ).getFieldDomainType() == Field.DOMAIN_TYPE_NODES): node = self._scenepicker.getNearestNode() nodeset = node.getNodeset() nodegroup = self._selectionGroup.getFieldNodeGroup(nodeset) if not nodegroup.isValid(): nodegroup = self._selectionGroup.createFieldNodeGroup( nodeset) group = nodegroup.getNodesetGroup() if self._selection_mode == SelectionMode.EXCLUSIVE: remove_current = group.getSize( ) == 1 and group.containsNode(node) self._selectionGroup.clear() if not remove_current: group.addNode(node) elif self._selection_mode == SelectionMode.ADDITIVE: if group.containsNode(node): group.removeNode(node) else: group.addNode(node) if self._elemSelectMode and ( self._scenepicker.getNearestGraphics( ).getFieldDomainType() in [ Field.DOMAIN_TYPE_MESH1D, Field.DOMAIN_TYPE_MESH2D, Field.DOMAIN_TYPE_MESH3D, Field.DOMAIN_TYPE_MESH_HIGHEST_DIMENSION ]): elem = self._scenepicker.getNearestElement() mesh = elem.getMesh() elementgroup = self._selectionGroup.getFieldElementGroup( mesh) if not elementgroup.isValid(): elementgroup = self._selectionGroup.createFieldElementGroup( mesh) group = elementgroup.getMeshGroup() if self._selection_mode == SelectionMode.EXCLUSIVE: remove_current = group.getSize( ) == 1 and group.containsElement(elem) self._selectionGroup.clear() if not remove_current: group.addElement(elem) elif self._selection_mode == SelectionMode.ADDITIVE: if group.containsElement(elem): group.removeElement(elem) else: group.addElement(elem) top_region.endHierarchicalChange() self._selection_mode = SelectionMode.NONE elif not self._ignore_mouse_events and self._handle_mouse_events: SceneviewerWidget.mouseReleaseEvent(self, event) self._selection_mode = SelectionMode.NONE
def setScenefilter(self, scenefilter): self._scenepicker.setScenefilter(scenefilter) SceneviewerWidget.setScenefilter(self, scenefilter)
def mouseReleaseEvent(self, event): ''' Inform the scene viewer of a mouse release event. ''' event.accept() if not self._ignore_mouse_events and self._selection_mode != SelectionMode.NONE: x = event.x() y = event.y() # Construct a small frustum to look for nodes in. top_region = self._sceneviewer.getScene().getRegion() top_region.beginHierarchicalChange() self._selection_box.setVisibilityFlag(False) if (x != self._selection_position_start[0] and y != self._selection_position_start[1]): left = min(x, self._selection_position_start[0]) right = max(x, self._selection_position_start[0]) bottom = min(y, self._selection_position_start[1]) top = max(y, self._selection_position_start[1]) self._scenepicker.setSceneviewerRectangle(self._sceneviewer, SCENECOORDINATESYSTEM_LOCAL, left, bottom, right, top); if self._selection_mode == SelectionMode.EXCLUSIVE: self._selectionGroup.clear() if self._nodeSelectMode or self._dataSelectMode: self._scenepicker.addPickedNodesToFieldGroup(self._selectionGroup) if self._elemSelectMode: self._scenepicker.addPickedElementsToFieldGroup(self._selectionGroup) else: self._scenepicker.setSceneviewerRectangle(self._sceneviewer, SCENECOORDINATESYSTEM_LOCAL, x - 3.5, y - 3.5, x + 3.5, y + 3.5) if self._nodeSelectMode and self._elemSelectMode and self._selection_mode == SelectionMode.EXCLUSIVE and not self._scenepicker.getNearestGraphics().isValid(): self._selectionGroup.clear() if self._nodeSelectMode and (self._scenepicker.getNearestGraphics().getFieldDomainType() == Field.DOMAIN_TYPE_NODES): node = self._scenepicker.getNearestNode() nodeset = node.getNodeset() nodegroup = self._selectionGroup.getFieldNodeGroup(nodeset) if not nodegroup.isValid(): nodegroup = self._selectionGroup.createFieldNodeGroup(nodeset) group = nodegroup.getNodesetGroup() if self._selection_mode == SelectionMode.EXCLUSIVE: remove_current = group.getSize() == 1 and group.containsNode(node) self._selectionGroup.clear() if not remove_current: group.addNode(node) elif self._selection_mode == SelectionMode.ADDITIVE: if group.containsNode(node): group.removeNode(node) else: group.addNode(node) if self._elemSelectMode and (self._scenepicker.getNearestGraphics().getFieldDomainType() in [Field.DOMAIN_TYPE_MESH1D, Field.DOMAIN_TYPE_MESH2D, Field.DOMAIN_TYPE_MESH3D, Field.DOMAIN_TYPE_MESH_HIGHEST_DIMENSION]): elem = self._scenepicker.getNearestElement() mesh = elem.getMesh() elementgroup = self._selectionGroup.getFieldElementGroup(mesh) if not elementgroup.isValid(): elementgroup = self._selectionGroup.createFieldElementGroup(mesh) group = elementgroup.getMeshGroup() if self._selection_mode == SelectionMode.EXCLUSIVE: remove_current = group.getSize() == 1 and group.containsElement(elem) self._selectionGroup.clear() if not remove_current: group.addElement(elem) elif self._selection_mode == SelectionMode.ADDITIVE: if group.containsElement(elem): group.removeElement(elem) else: group.addElement(elem) top_region.endHierarchicalChange() self._selection_mode = SelectionMode.NONE elif not self._ignore_mouse_events and self._handle_mouse_events: SceneviewerWidget.mouseReleaseEvent(self, event) self._selection_mode = SelectionMode.NONE