def exitActive(self):
     OrbitCamera.exitActive(self)
     self.ignore('wheel_up')
     self.ignore('wheel_down')
     self._scInputListener.ignoreAll()
     del self._scInputListener
     del self._scInputState
 def exitActive(self):
     OrbitCamera.exitActive(self)
     self.ignore('wheel_up')
     self.ignore('wheel_down')
     self._scInputListener.ignoreAll()
     del self._scInputListener
     del self._scInputState
Exemplo n.º 3
0
 def exitActive(self):
     OrbitCamera.exitActive(self)
     if self.speedAcceptName:
         self.ignore(self.speedAcceptName)
     self.ignore('wheel_up')
     self.ignore('wheel_down')
     self._scInputListener.ignoreAll()
     del self._scInputListener
     del self._scInputState
 def enterActive(self):
     OrbitCamera.enterActive(self)
     self.accept('wheel_up', self._handleWheelUp)
     self.accept('wheel_down', self._handleWheelDown)
     self._scInputState = ScratchPad()
     self._scInputState.rmbPressed = False
     self._scInputState.fwdPressed = False
     self._scInputListener = DirectObject.DirectObject()
     self._scInputListener.accept(inputState.getEventName('RMB'), self._handleRmbEvent)
     self._handleRmbEvent(inputState.isSet('RMB'))
     self._scInputListener.accept(inputState.getEventName('forward'), self._handleForwardEvent)
     self._handleForwardEvent(inputState.isSet('forward'))
Exemplo n.º 5
0
 def __init__(self, subject, params = None):
     OrbitCamera.__init__(self, subject, params)
     self.lastFrameTime = None
     self.camTimer = 0.0
     self.correctionAmount = 0.5
     self.recoverySpeed = 0.25
     self.smoothSecs = 4.0
     self.lastHeading = None
     self.smoothProjectedTarget = 0.0
     self.shipSpeed = 0.0
     self.speedAcceptName = None
     base.shipCam = self
 def enterActive(self):
     OrbitCamera.enterActive(self)
     self.accept('wheel_up', self._handleWheelUp)
     self.accept('wheel_down', self._handleWheelDown)
     self._scInputState = ScratchPad()
     self._scInputState.rmbPressed = False
     self._scInputState.fwdPressed = False
     self._scInputListener = DirectObject.DirectObject()
     self._scInputListener.accept(inputState.getEventName('RMB'),
                                  self._handleRmbEvent)
     self._handleRmbEvent(inputState.isSet('RMB'))
     self._scInputListener.accept(inputState.getEventName('forward'),
                                  self._handleForwardEvent)
     self._handleForwardEvent(inputState.isSet('forward'))
Exemplo n.º 7
0
 def enterActive(self):
     OrbitCamera.enterActive(self)
     self.accept('wheel_up', self._handleWheelUp)
     self.accept('wheel_down', self._handleWheelDown)
     self._scInputState = ScratchPad()
     self._scInputState.rmbPressed = False
     self._scInputState.fwdPressed = False
     self._scInputListener = DirectObject.DirectObject()
     self._scInputListener.accept(inputState.getEventName('RMB'), self._handleRmbEvent)
     self._handleRmbEvent(inputState.isSet('RMB'))
     self._scInputListener.accept(inputState.getEventName('forward'), self._handleForwardEvent)
     self._handleForwardEvent(inputState.isSet('forward'))
     if hasattr(self.subject, 'doId'):
         self.speedAcceptName = 'setShipSpeed-%s' % self.subject.doId
         self.accept(self.speedAcceptName, self.recordShipSpeed)
 def _mouseUpdateTask(self, task):
     if OrbitCamera._mouseUpdateTask(self, task) == task.cont or self.mouseDelta[0] or self.mouseDelta[1]:
         sensitivity = 0.5
         self.setRotation(self.getRotation() - self.mouseDelta[0] * sensitivity)
         self.setEscapement(clampScalar(self.escapement + self.mouseDelta[1] * sensitivity * 0.59999999999999998, self._minEsc, self._maxEsc))
     
     return task.cont
Exemplo n.º 9
0
 def _mouseUpdateTask(self, task):
     if OrbitCamera._mouseUpdateTask(self, task) == task.cont or self.mouseDelta[0] or self.mouseDelta[1]:
         sensitivity = 0.5
         self.camTimer = -1.0
         self.setRotation(self.getRotation() - self.mouseDelta[0] * sensitivity)
         self.setEscapement(clampScalar(self.escapement + self.mouseDelta[1] * sensitivity * 0.59999999999999998, self._minEsc, self._maxEsc))
     
     return task.cont
Exemplo n.º 10
0
 def _updateTask(self, task=None):
     if not base.shipLookAhead:
         return OrbitCamera._updateTask(self, task)
     self.setFluidPos(render, self.lookAtNode.getPos(render))
     if self.lastHeading == None:
         self.lastHeading = reduceAngle(self.subject.getH())
     fittedAngle = fitSrcAngle2Dest(self.subject.getH(), self.lastHeading)
     headingDif = fittedAngle - self.lastHeading
     self.lastHeading = self.subject.getH()
     if self.lastFrameTime != None:
         lastFrameTime = self.lastFrameTime
         newFrameTime = globalClock.getFrameTime()
         timeDelta = min(self.smoothSecs, newFrameTime - lastFrameTime)
         self.lastFrameTime = newFrameTime
     else:
         self.lastFrameTime = globalClock.getFrameTime()
         timeDelta = 0.0
     if self._rotateToRearEnabled:
         if self.getAutoFaceForward() and self.camTimer < 0.0:
             self.camTimer = 0.0
         if self.camTimer >= 0.0:
             self.camTimer = min(
                 timeDelta * self.recoverySpeed + self.camTimer, 1.0)
             camTimer = max(0, self.camTimer)
         self.smoothProjectedTarget = (self.mouseControl
                                       or self.camTimer < 0) and self.getH(
                                           self.subject)
     else:
         if timeDelta == 0.0:
             headingVelocity = 0.0
         else:
             headingVelocity = headingDif / timeDelta
         projectedTarget = headingVelocity
         if self.shipSpeed < 0.0:
             projectedTarget = -1.0 * projectedTarget
         if projectedTarget < 0:
             projectedTarget = -3.5 * math.pow(abs(projectedTarget), 0.6)
         else:
             projectedTarget = 3.5 * math.pow(abs(projectedTarget), 0.6)
         readjustSpeed = 1.0
         if abs(headingVelocity) < 1.0:
             readjustSpeed = 0.5
         readjustTime = self.smoothSecs * readjustSpeed
         self.smoothProjectedTarget = (
             self.smoothProjectedTarget *
             (readjustTime - timeDelta * self.camTimer) + projectedTarget *
             (timeDelta * self.camTimer)) / readjustTime
         curSubjectH = self.subject.getH(render)
         relH = reduceAngle(self.getH(self.subject))
         self.setRotation(self.smoothProjectedTarget)
         self.setP(0)
         self.setR(0)
         camera.clearMat()
     return Task.cont
Exemplo n.º 11
0
 def _startCollisionCheck(self):
     OrbitCamera._startCollisionCheck(self, shipBarrier=1)
Exemplo n.º 12
0
 def destroy(self):
     OrbitCamera.destroy(self)
Exemplo n.º 13
0
 def _stopMouseControlTasks(self):
     OrbitCamera._stopMouseControlTasks(self)
 def _stopMouseControlTasks(self):
     OrbitCamera._stopMouseControlTasks(self)
 def _startMouseControlTasks(self):
     OrbitCamera._startMouseControlTasks(self)
     if self.mouseControl:
         self._lockAtRear = False
Exemplo n.º 16
0
 def _startMouseControlTasks(self):
     OrbitCamera._startMouseControlTasks(self)
     if self.mouseControl:
         self._lockAtRear = False
 def _startCollisionCheck(self):
     OrbitCamera._startCollisionCheck(self, shipBarrier = 1)