def __init__(self, editorSession, *args, **kwargs): """ :type editorSession: EditorSession """ super(SelectionTool, self).__init__(editorSession, *args, **kwargs) toolWidget = QtGui.QWidget() editorSession.selectionChanged.connect(self.selectionDidChange) self.toolWidget = toolWidget self.coordInput = SelectionCoordinateWidget() self.coordInput.boxChanged.connect(self.coordInputChanged) self.shapeInput = ShapeWidget() self.shapeInput.shapeChanged.connect(self.shapeDidChange) self.toolWidget.setLayout( Column(self.coordInput, self.shapeInput, None)) self.cursorNode = SelectionCursor() self.overlayNode = scenegraph.Node() self.faceHoverNode = SelectionFaceNode() self.selectionNode = SelectionScene() self.overlayNode.addChild(self.selectionNode) self.overlayNode.addChild(self.faceHoverNode) self.boxHandleNode = BoxHandle() self.boxHandleNode.boundsChanged.connect(self.boxHandleResized) self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone) self.overlayNode.addChild(self.boxHandleNode) self.newSelectionNode = None editorSession.dimensionChanged.connect(self.dimensionDidChange)
def __init__(self, editorSession, *args, **kwargs): """ :type editorSession: EditorSession """ super(SelectionTool, self).__init__(editorSession, *args, **kwargs) toolWidget = QtGui.QWidget() editorSession.selectionChanged.connect(self.selectionDidChange) self.toolWidget = toolWidget self.optionsButton = QtGui.QPushButton(self.tr("Options")) self.optionsMenu = QtGui.QMenu() self.optionsButton.setMenu(self.optionsMenu) classicSelectionAction = self.optionsMenu.addAction( self.tr("Classic Selection")) stickySelectionAction = self.optionsMenu.addAction( self.tr("Sticky Selection")) self.coordInput = SelectionCoordinateWidget() self.coordInput.boxChanged.connect(self.coordInputChanged) self.shapeInput = ShapeWidget(addShapes=[ChunkShape()]) self.shapeInput.shapeChanged.connect(self.shapeDidChange) self.shapeInput.shapeOptionsChanged.connect(self.shapeDidChange) self.toolWidget.setLayout( Column(self.optionsButton, self.coordInput, self.shapeInput, None)) self.cursorNode = SelectionCursor() self.overlayNode = scenenode.Node("selectOverlay") self.faceHoverNode = SelectionFaceNode() self.selectionNode = SelectionScene() self.overlayNode.addChild(self.selectionNode) self.overlayNode.addChild(self.faceHoverNode) self.boxHandleNode = BoxHandle() self.boxHandleNode.boundsChanged.connect(self.boxHandleResized) self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone) self.overlayNode.addChild(self.boxHandleNode) self.newSelectionNode = None classicSelectionAction.setCheckable(True) classicSelectionAction.toggled.connect(ClassicSelectionOption.setValue) classicSelectionAction.setChecked(ClassicSelectionOption.value()) ClassicSelectionOption.connectAndCall(self.setClassicSelection) stickySelectionAction.setCheckable(True) stickySelectionAction.toggled.connect(StickySelectionOption.setValue) stickySelectionAction.setChecked(StickySelectionOption.value()) StickySelectionOption.connectAndCall(self.setStickySelection) editorSession.dimensionChanged.connect(self.dimensionDidChange) editorSession.revisionChanged.connect(self.revisionDidChange)
def main(): app = QtGui.QApplication([]) selection = ShapeFuncSelection(BoundingBox((0, 0, 0), (63, 63, 63)), SphereShape) scene = SelectionScene() def timeBuild(): scene.selection = selection for _ in scene.loadSections(): pass duration = timeit.timeit(timeBuild, number=1) * 1000 print("timeBuild x1 in %0.2fms (%0.3fms per chunk)" % (duration, duration / selection.chunkCount))
def __init__(self, editorSession, *args, **kwargs): """ :type editorSession: EditorSession """ super(SelectionTool, self).__init__(editorSession, *args, **kwargs) toolWidget = QtGui.QWidget() editorSession.selectionChanged.connect(self.selectionDidChange) self.toolWidget = toolWidget self.coordInput = SelectionCoordinateWidget() self.coordInput.boxChanged.connect(self.coordInputChanged) self.shapeInput = ShapeWidget() self.shapeInput.shapeChanged.connect(self.shapeDidChange) self.deselectButton = QtGui.QPushButton(self.tr("Deselect")) self.deselectButton.clicked.connect(self.deselect) self.deleteSelectionButton = QtGui.QPushButton(self.tr("Delete")) self.deleteSelectionButton.clicked.connect(self.deleteSelection) self.deleteBlocksButton = QtGui.QPushButton(self.tr("Delete Blocks")) self.deleteBlocksButton.clicked.connect(self.deleteBlocks) self.deleteEntitiesButton = QtGui.QPushButton(self.tr("Delete Entities")) self.deleteEntitiesButton.clicked.connect(self.deleteEntities) self.fillButton = QtGui.QPushButton(self.tr("Fill")) self.fillButton.clicked.connect(self.fill) self.replaceButton = QtGui.QPushButton(self.tr("Replace")) self.replaceButton.clicked.connect(self.replace) self.toolWidget.setLayout(Column(self.coordInput, self.shapeInput, self.deselectButton, self.deleteSelectionButton, self.deleteBlocksButton, self.deleteEntitiesButton, self.fillButton, self.replaceButton, None)) self.cursorNode = SelectionCursor() self.overlayNode = scenegraph.Node() self.faceHoverNode = SelectionFaceNode() self.selectionNode = SelectionScene() self.selectionNode.dimension = editorSession.currentDimension # xxx dimensionDidChange self.overlayNode.addChild(self.selectionNode) self.overlayNode.addChild(self.faceHoverNode) self.boxHandleNode = BoxHandle() self.boxHandleNode.boundsChanged.connect(self.boxHandleResized) self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone) self.overlayNode.addChild(self.boxHandleNode) self.newSelectionNode = None