def exitDisabled( self ): # backup settings self.backupSettings() # start control of camera WindowManager.getDefaultCamera().reparentTo( self.cameraRotPivot ) WindowManager.getDefaultCamera().setY( -STARTUP_CAMERA_DISTANCE ) self.posPivotModel.show()
def exitDisabled(self): # backup settings self.backupSettings() # start control of camera WindowManager.getDefaultCamera().reparentTo(self.cameraRotPivot) WindowManager.getDefaultCamera().setY(-STARTUP_CAMERA_DISTANCE) self.posPivotModel.show()
def restoreSettings(self): # doesnt work # base.camera.reparentTo(self.prevCamParent) # this works base.camera = WindowManager.getDefaultCamera() base.camera.reparentTo(self.prevCamParent) base.camera.setPos(self.prevCameraPos) if self.prevMouseEnabled: base.enableMouse()
def restoreSettings(self): # doesnt work # base.camera.reparentTo(self.prevCamParent) # this works base.camera = WindowManager.getDefaultCamera() base.camera.reparentTo(self.prevCamParent) base.camera.setPos(self.prevCameraPos) if self.prevMouseEnabled: base.enableMouse()
def zoomIn( self ): camera = WindowManager.getDefaultCamera() if type(camera.node().getLens()) == PerspectiveLens: camera.setY( min( -MIN_CAMERA_DISTANCE , max( -MAX_CAMERA_DISTANCE , camera.getY() + 1 * MOUSE_ZOOM_SPEED ) ) ) elif type(camera.node().getLens()) == OrthographicLens: lens = camera.node().getLens() filmSize = lens.getFilmSize() lens.setFilmSize(filmSize*0.75)
def __enableEditor(self): ''' the gui will call this function and enabled the core editor using it ''' if self.guiType is not None: if self.editModeEnabled is False: print "I: core.EditorClass.__enableEditor:" WindowManager.getDefaultCamera().node().getLens().setFar(5000) self.sceneHelperModels = NodePath('editor-helper-models') self.sceneHelperModels.reparentTo(render) self.sceneHelperModels.setLightOff() # the axis model at 0/0/0 axis = loader.loadModel( 'zup-axis.egg' ) axis.reparentTo( self.sceneHelperModels ) scenePicker.toggleEditmode(True) #print "I: core.EditorClass.enterWorldEditMode:", modelModificator.__class__.__name__ modelModificator.toggleEditmode(True) # enable the texturePainter #texturePainter.enableEditor() # a grid model gridNp = DirectGrid(parent=self.sceneHelperModels) # enable editmode on the object tree self.treeParent.setEditmodeEnabled() # refresh the scenegraphbrowser #messenger.send(EVENT_SCENEGRAPH_REFRESH) messenger.send(EVENT_SCENEGRAPH_CHANGE_ROOT, [self.treeParent]) messenger.send(EVENT_MODELCONTROLLER_SELECT_OBJECT, [None]) messenger.send(EVENT_SCENEGRAPH_REFRESH) self.editModeEnabled = True else: print "I: core.EditorClass.__enableEditor: editmode already enabled" else: print "I: core.EditorClass.__enableEditor: editmode unavailable if no gui type defined"
def __enableEditor(self): ''' the gui will call this function and enabled the core editor using it ''' if self.guiType is not None: if self.editModeEnabled is False: print "I: core.EditorClass.__enableEditor:" WindowManager.getDefaultCamera().node().getLens().setFar(5000) self.sceneHelperModels = NodePath('editor-helper-models') self.sceneHelperModels.reparentTo(render) self.sceneHelperModels.setLightOff() # the axis model at 0/0/0 axis = loader.loadModel('zup-axis.egg') axis.reparentTo(self.sceneHelperModels) scenePicker.toggleEditmode(True) #print "I: core.EditorClass.enterWorldEditMode:", modelModificator.__class__.__name__ modelModificator.toggleEditmode(True) # enable the texturePainter #texturePainter.enableEditor() # a grid model gridNp = DirectGrid(parent=self.sceneHelperModels) # enable editmode on the object tree self.treeParent.setEditmodeEnabled() # refresh the scenegraphbrowser #messenger.send(EVENT_SCENEGRAPH_REFRESH) messenger.send(EVENT_SCENEGRAPH_CHANGE_ROOT, [self.treeParent]) messenger.send(EVENT_MODELCONTROLLER_SELECT_OBJECT, [None]) messenger.send(EVENT_SCENEGRAPH_REFRESH) self.editModeEnabled = True else: print "I: core.EditorClass.__enableEditor: editmode already enabled" else: print "I: core.EditorClass.__enableEditor: editmode unavailable if no gui type defined"
def toggleLens(self): camera = WindowManager.getDefaultCamera() print type(camera.node()) print type(camera.node().getLens()) if type(camera.node().getLens()) == PerspectiveLens: lens = OrthographicLens() lens.setFilmSize(Vec2(10,10)) camera.node().setLens(lens) elif type(camera.node().getLens()) == OrthographicLens: lens = PerspectiveLens() camera.node().setLens(lens)
def toggleLens(self): camera = WindowManager.getDefaultCamera() print type(camera.node()) print type(camera.node().getLens()) if type(camera.node().getLens()) == PerspectiveLens: lens = OrthographicLens() lens.setFilmSize(Vec2(10, 10)) camera.node().setLens(lens) elif type(camera.node().getLens()) == OrthographicLens: lens = PerspectiveLens() camera.node().setLens(lens)
def zoomIn(self): camera = WindowManager.getDefaultCamera() if type(camera.node().getLens()) == PerspectiveLens: camera.setY( min( -MIN_CAMERA_DISTANCE, max(-MAX_CAMERA_DISTANCE, camera.getY() + 1 * MOUSE_ZOOM_SPEED))) elif type(camera.node().getLens()) == OrthographicLens: lens = camera.node().getLens() filmSize = lens.getFilmSize() lens.setFilmSize(filmSize * 0.75)
def taskMouseButton3Pressed( self, task ): # this is needed because the task might be called once more after the exit # function has been called # also skip first frame mx,my = mouseHandler.getMousePos() if self.taskMouseButton3PressedRunning and task.frame: diffPos = WindowManager.getDefaultCamera().getPos( render ) - self.cameraPosPivot.getPos( render ) diffPos.normalize() self.cameraPosPivot.setX( self.cameraPosPivot.getX() \ - mx * diffPos.getY() * MOUSE_MOVEMENT_SPEED - my * diffPos.getX() * MOUSE_MOVEMENT_SPEED ) self.cameraPosPivot.setY( self.cameraPosPivot.getY() \ - my * diffPos.getY() * MOUSE_MOVEMENT_SPEED + mx * diffPos.getX() * MOUSE_MOVEMENT_SPEED ) return task.cont
def taskMouseButton3Pressed(self, task): # this is needed because the task might be called once more after the exit # function has been called # also skip first frame mx, my = mouseHandler.getMousePos() if self.taskMouseButton3PressedRunning and task.frame: diffPos = WindowManager.getDefaultCamera().getPos( render) - self.cameraPosPivot.getPos(render) diffPos.normalize() self.cameraPosPivot.setX( self.cameraPosPivot.getX() \ - mx * diffPos.getY() * MOUSE_MOVEMENT_SPEED - my * diffPos.getX() * MOUSE_MOVEMENT_SPEED ) self.cameraPosPivot.setY( self.cameraPosPivot.getY() \ - my * diffPos.getY() * MOUSE_MOVEMENT_SPEED + mx * diffPos.getX() * MOUSE_MOVEMENT_SPEED ) return task.cont
def movePivotTask(self, task): ''' move the camera pivot by keypresses ''' #print "I: CameraController.movePivotTask:", task.time # the movement the camera pivot should make moveVec = Vec3(0) for key, active in self.pressedKeys.items(): if active: moveVec += self.moveActions[key] # move relative to camera viewport cam = WindowManager.getDefaultCamera() relVec = self.cameraPosPivot.getRelativeVector(cam, moveVec) self.cameraPosPivot.setPos(self.cameraPosPivot, relVec*globalClock.getDt()) # send a event with the new position of the pivot pivotPos = Vec3(self.cameraPosPivot.getPos(render)) messenger.send(EVENT_CAMERAPIVOT_POSITION_CHANGE, [pivotPos]) return task.cont
def movePivotTask(self, task): ''' move the camera pivot by keypresses ''' #print "I: CameraController.movePivotTask:", task.time # the movement the camera pivot should make moveVec = Vec3(0) for key, active in self.pressedKeys.items(): if active: moveVec += self.moveActions[key] # move relative to camera viewport cam = WindowManager.getDefaultCamera() relVec = self.cameraPosPivot.getRelativeVector(cam, moveVec) self.cameraPosPivot.setPos(self.cameraPosPivot, relVec * globalClock.getDt()) # send a event with the new position of the pivot pivotPos = Vec3(self.cameraPosPivot.getPos(render)) messenger.send(EVENT_CAMERAPIVOT_POSITION_CHANGE, [pivotPos]) return task.cont