class ImportCommand(Command): """ Import the objects from a file into the scene. """ def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager() def execute(self, filename): doc = QtXml.QDomDocument("Geometric Constraints") file = QtCore.QFile(filename) if not file.open(QtCore.QIODevice.ReadOnly): raise StandardError, "File could not be opened" return """ Skip the first line, because we need the root of the objects not the document. """ file.readLine() if not doc.setContent(file, False): file.close() raise StandardError, "Could not initialize the file" return file.close() root = doc.documentElement() if root.tagName() != "Objects": raise StandardError, "Invalid document" return self.prototypeManager.importScene(root) self.mainWindow.viewportManager.updateViewports()
class ImportCommand(Command): """ Import the objects from a file into the scene. """ def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager() def execute(self, filename): doc = QtXml.QDomDocument( "Geometric Constraints" ) file = QtCore.QFile(filename) if not file.open(QtCore.QIODevice.ReadOnly): raise StandardError, "File could not be opened" return """ Skip the first line, because we need the root of the objects not the document. """ file.readLine() if not doc.setContent(file, False): file.close() raise StandardError, "Could not initialize the file" return file.close() root = doc.documentElement() if root.tagName() != "Objects": raise StandardError, "Invalid document" return self.prototypeManager.importScene(root) self.mainWindow.viewportManager.updateViewports()
def generateRandom(self): ## first do as if File->New was selected self.new() ## then show randomProblemDialog #ui = Ui_randomProblemDialog() #dialog = QtDialog() ## create random problem (numpoints, ratio, size, rounding) = (10, 0.0, 100.0, 0.0) problem = randomproblem.random_triangular_problem_3D(numpoints, size, rounding, ratio) prototypeManager = PrototypeManager() prototypeManager.setProblem(problem) self.viewportManager.updateViewports()
class ClearSceneCommand(Command): """ Clear the whole scene of all the objects. """ def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager() def execute(self): self.prototypeManager.removeAllObjects() self.mainWindow.viewportManager.resetScene() self.mainWindow.viewportManager.updateViewports() self.mainWindow.saveFileName = QtCore.QString("")
def changeViewport(self, viewportName): if self.name == viewportName: return else: tool = self.glViewport.currentTool self.glViewport.close() if viewportName == "Top": self.glViewport = GLViewport( self, ViewportType.TOP, None, QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) elif viewportName == "Side": self.glViewport = GLViewport( self, ViewportType.SIDE, None, QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) elif viewportName == "Front": self.glViewport = GLViewport( self, ViewportType.FRONT, None, QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) elif viewportName == "Perspective": self.glViewport = GLViewport( self, ViewportType.PERSPECTIVE, None, QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) elif viewportName == "Decomposition": self.glViewport = DecompositionView( self, self.viewportManager, ViewportType.DECOMPOSITION, PrototypeManager( )) #self.getMainWindow().compositionView # elif viewportName == "Solution": self.solutionView = SolutionView(self.getMainWindow(), self.viewportManager, ViewportType.SOLUTION, PrototypeManager(), True) self.glViewport = self.solutionView.solutionWidget self.setActions() for action in self.editGroup.actions(): action.setChecked(False) self.splitterVertical.addWidget(self.glViewport) self.setName(self.glViewport.viewportType) self.glViewport.currentTool = tool if self.glViewport.viewportType != ViewportType.DECOMPOSITION: self.glViewport.makeCurrent()
def execute(self, tool): """ Update a tool to a new tool Parameters: tool = new tool which the user has selected """ if self.viewportManager.displayViewport == DisplayViewport.ALL: for viewport in self.viewportManager.viewportList: viewport.glViewport.currentTool = tool for action in viewport.editGroup.actions(): action.setChecked(False) else: self.viewportManager.viewport.glViewport.currentTool = tool for action in self.viewportManager.viewport.editGroup.actions(): action.setChecked(False) PrototypeManager().deselectObject() self.viewportManager.updateViewports()
class SaveCommand(Command): """ Save the file for all the objects in the scene. """ def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager() def execute(self, filename): doc = QtXml.QDomDocument( "Geometric Constraints" ) root = doc.createElement( "Objects" ) doc.appendChild( root ); for prtObject in self.prototypeManager.prtObjects: if not prtObject.ghost: root.appendChild(prtObject.save(doc)) root.appendChild(self.prototypeManager.save(doc)) file = QtCore.QFile(filename) if file.open(QtCore.QIODevice.WriteOnly): ts = QtCore.QTextStream(file) ts << doc.toString() file.close()
class SaveCommand(Command): """ Save the file for all the objects in the scene. """ def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager() def execute(self, filename): doc = QtXml.QDomDocument("Geometric Constraints") root = doc.createElement("Objects") doc.appendChild(root) for prtObject in self.prototypeManager.prtObjects: if not prtObject.ghost: root.appendChild(prtObject.save(doc)) root.appendChild(self.prototypeManager.save(doc)) file = QtCore.QFile(filename) if file.open(QtCore.QIODevice.WriteOnly): ts = QtCore.QTextStream(file) ts << doc.toString() file.close()
def createTriggers(self): # menu actions QtCore.QObject.connect(self.actionNew,QtCore.SIGNAL("triggered()"),self.new) QtCore.QObject.connect(self.actionQuit,QtCore.SIGNAL("triggered()"),self.close) QtCore.QObject.connect(self.actionSave,QtCore.SIGNAL("triggered()"),self.save) QtCore.QObject.connect(self.actionSave_As,QtCore.SIGNAL("triggered()"),self.saveAs) QtCore.QObject.connect(self.actionImport,QtCore.SIGNAL("triggered()"),self.importFile) QtCore.QObject.connect(self.actionOpen,QtCore.SIGNAL("triggered()"),self.load) QtCore.QObject.connect(self.actionCompositionView,QtCore.SIGNAL("triggered()"), self.showCompositionView) QtCore.QObject.connect(self.actionSolutionView,QtCore.SIGNAL("triggered()"), self.showSolutionView) QtCore.QObject.connect(self.actionPreferences,QtCore.SIGNAL("triggered()"), self.showPreferencesDlg) QtCore.QObject.connect(self.actionSelect,QtCore.SIGNAL("changed()"), self.selectTriggered) QtCore.QObject.connect(self.actionPlacePoint,QtCore.SIGNAL("changed()"), self.placePointTriggered) QtCore.QObject.connect(self.actionMove,QtCore.SIGNAL("changed()"), self.moveTriggered) QtCore.QObject.connect(self.actionConnect,QtCore.SIGNAL("changed()"), self.connectTriggered) QtCore.QObject.connect(self.actionDistanceConstraint,QtCore.SIGNAL("changed()"), self.distanceConstraintTriggered) QtCore.QObject.connect(self.actionMinMaxView,QtCore.SIGNAL("triggered()"), self.viewportManager.minmaxView) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), PrototypeManager().solve) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.compositionView.createDecomposition) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.solutionView.createSolution) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.viewportManager.updateSolution) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.viewportManager.updateDecomposition) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.viewportManager.updateViewports) QtCore.QObject.connect(self.actionSolve,QtCore.SIGNAL("triggered()"), self.updateConstraintInfo) QtCore.QObject.connect(self.actionClusters,QtCore.SIGNAL("triggered()"), self.showClusters) QtCore.QObject.connect(self.actionDistance,QtCore.SIGNAL("changed()"), self.placeDistanceTriggered) QtCore.QObject.connect(self.actionAngleConstraint,QtCore.SIGNAL("changed()"), self.placeAngleConstraintTriggered) QtCore.QObject.connect(self.actionFixedConstraint,QtCore.SIGNAL("changed()"), self.placeFixedConstraintTriggered) # Rick 20090522 QtCore.QObject.connect(self.actionGenerate,QtCore.SIGNAL("triggered()"),self.generateRandom)
def showClusters(self): prtManager = PrototypeManager() prtManager.showClusters() self.viewportManager.updateViewports()
def __init__(self, mainWindow): Command.__init__(self) self.mainWindow = mainWindow self.prototypeManager = PrototypeManager()
def updateConstraintInfo(self): self.infoPanel.reset() updateTaskbarCommand = UpdateTextInTaskbarCommand(PrototypeManager(), self) updateTaskbarCommand.execute()
def createSolutionView(self): self.solutionView = SolutionView(self, self.viewportManager, ViewportType.SOLUTION ,PrototypeManager())
def createDecompositionView(self): self.compositionView = CompositionView(None, self.viewportManager, ViewportType.DECOMPOSITION ,PrototypeManager())