def editToolSetup(self, editTool):
        ''' the modificator tool has been pressed, it's now starting the task
    to modify the node '''
        #messenger.send(EVENT_MODELCONTROLLER_EDITTOOL_SELECTED)
        transX, transY, rotX, rotY, scaleX, scaleY = MODEL_MODIFICATION_FUNCTIONS[
            editTool]
        task = Task(self.editToolTask)

        selectedObject = modelController.getSelectedObject()
        if self.__relativeModificationTo == selectedObject:
            self.__modificationNode = selectedObject.getNodepath()
        else:
            # we are moving relative to some other node
            self.__origModelParent = selectedObject.getNodepath().getParent()
            self.__modificationNode = self.__relativeModificationTo.attachNewNode(
                'dummyNode')
            self.__modificationNode.setPos(
                selectedObject.getNodepath().getPos())
            selectedObject.getNodepath().wrtReparentTo(self.__modificationNode)

        if type(self.__modificationNode) == NodePath:
            taskMgr.add(
                task,
                'editToolTask',
                extraArgs=[task, transX, transY, rotX, rotY, scaleX, scaleY],
                uponDeath=self.editToolCleanup)
            self.accept('mouse1-up', taskMgr.remove, ['editToolTask'])
            mouseHandler.toggleMouseFixed(True)
        else:
            print "E: ModelModificator.editToolSetup: invalid node"
            print "  -", type(self.__modificationNode
                              ), self.__modificationNode.__class__.__name__
 def enterMouseButton3Pressed( self ):
   #self.ignoreAll()
   
   # add the task and the abort funtion
   self.taskMouseButton3PressedRunning = True
   taskMgr.add( self.taskMouseButton3Pressed, 'taskMouseButton3Pressed' )
   self.accept( 'mouse3-up', self.request, ['Default'] )
   # center the mouse to prevent a huge jump in the beginng
   mouseHandler.toggleMouseFixed( True )
    def enterMouseButton3Pressed(self):
        #self.ignoreAll()

        # add the task and the abort funtion
        self.taskMouseButton3PressedRunning = True
        taskMgr.add(self.taskMouseButton3Pressed, 'taskMouseButton3Pressed')
        self.accept('mouse3-up', self.request, ['Default'])
        # center the mouse to prevent a huge jump in the beginng
        mouseHandler.toggleMouseFixed(True)
 def editToolCleanup(self, task):
   ''' stop editing using the edittool (the mouse button has been released)
   '''
   messenger.send(EVENT_MODELCONTROLLER_EDITTOOL_DESELECTED)
   # the modification node needs to be destroyed if it's not the __selectedModel
   if self.__modificationNode != modelController.getSelectedObject().getNodepath():
       modelController.getSelectedObject().getNodepath().wrtReparentTo(self.__origModelParent)
       self.__modificationNode.detachNode()
       self.__modificationNode.removeNode()
   
   mouseHandler.toggleMouseFixed(False)
   self.__setMode()
   messenger.send(EVENT_MODELCONTROLLER_FULL_REFRESH)
    def editToolCleanup(self, task):
        ''' stop editing using the edittool (the mouse button has been released)
    '''
        messenger.send(EVENT_MODELCONTROLLER_EDITTOOL_DESELECTED)
        # the modification node needs to be destroyed if it's not the __selectedModel
        if self.__modificationNode != modelController.getSelectedObject(
        ).getNodepath():
            modelController.getSelectedObject().getNodepath().wrtReparentTo(
                self.__origModelParent)
            self.__modificationNode.detachNode()
            self.__modificationNode.removeNode()

        mouseHandler.toggleMouseFixed(False)
        self.__setMode()
        messenger.send(EVENT_MODELCONTROLLER_FULL_REFRESH)
 def editToolSetup(self, editTool):
   ''' the modificator tool has been pressed, it's now starting the task
   to modify the node '''
   #messenger.send(EVENT_MODELCONTROLLER_EDITTOOL_SELECTED)
   transX, transY, rotX, rotY, scaleX, scaleY = MODEL_MODIFICATION_FUNCTIONS[editTool]
   task = Task(self.editToolTask)
   
   selectedObject = modelController.getSelectedObject()
   if self.__relativeModificationTo == selectedObject:
     self.__modificationNode = selectedObject.getNodepath()
   else:
     # we are moving relative to some other node
     self.__origModelParent = selectedObject.getNodepath().getParent()
     self.__modificationNode = self.__relativeModificationTo.attachNewNode('dummyNode')
     self.__modificationNode.setPos(selectedObject.getNodepath().getPos())
     selectedObject.getNodepath().wrtReparentTo(self.__modificationNode)
   
   if type(self.__modificationNode) == NodePath:
     taskMgr.add(task, 'editToolTask', extraArgs = [task,transX, transY, rotX, rotY, scaleX, scaleY], uponDeath=self.editToolCleanup)
     self.accept('mouse1-up', taskMgr.remove, ['editToolTask'])
     mouseHandler.toggleMouseFixed(True)
   else:
     print "E: ModelModificator.editToolSetup: invalid node"
     print "  -", type(self.__modificationNode), self.__modificationNode.__class__.__name__
 def exitMouseButton3Pressed( self ):
   self.ignore('mouse3-up')
   taskMgr.remove( 'taskMouseButton3Pressed' )
   self.taskMouseButton1PressedRunning = False
   mouseHandler.toggleMouseFixed( False )
 def exitMouseButton3Pressed(self):
     self.ignore('mouse3-up')
     taskMgr.remove('taskMouseButton3Pressed')
     self.taskMouseButton1PressedRunning = False
     mouseHandler.toggleMouseFixed(False)