Example #1
0
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()
Example #2
0
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()
Example #3
0
 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()
Example #4
0
 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()
Example #5
0
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("")
Example #6
0
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("")
Example #7
0
    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()
Example #8
0
    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()
Example #9
0
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()
Example #10
0
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()
Example #11
0
    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)
Example #12
0
 def showClusters(self):
     prtManager = PrototypeManager()
     prtManager.showClusters()
     self.viewportManager.updateViewports()
Example #13
0
 def __init__(self, mainWindow):
     Command.__init__(self)
     self.mainWindow = mainWindow
     self.prototypeManager = PrototypeManager()
Example #14
0
 def updateConstraintInfo(self):
     self.infoPanel.reset()
     updateTaskbarCommand = UpdateTextInTaskbarCommand(PrototypeManager(), self)
     updateTaskbarCommand.execute()
Example #15
0
 def createSolutionView(self):
     self.solutionView = SolutionView(self, self.viewportManager, ViewportType.SOLUTION ,PrototypeManager())
Example #16
0
 def createDecompositionView(self):
     self.compositionView = CompositionView(None, self.viewportManager, ViewportType.DECOMPOSITION ,PrototypeManager())    
Example #17
0
 def showClusters(self):
     prtManager = PrototypeManager()
     prtManager.showClusters()
     self.viewportManager.updateViewports()
Example #18
0
	def __init__(self, mainWindow):
		Command.__init__(self)
		self.mainWindow = mainWindow
		self.prototypeManager = PrototypeManager()