def _PopCameraWithTransition(self, transitionSeconds, retainYaw, retainPitch): activeCamera = self.cameraClient.GetActiveCamera() cameraStack = self.cameraClient.GetCameraStack() comingActiveCamera = None try: comingActiveCamera = cameraStack[-2] except IndexError: comingActiveCamera = None if comingActiveCamera: if retainYaw: comingActiveCamera.SetYaw(activeCamera.yaw) if retainPitch: comingActiveCamera.SetPitch(activeCamera.pitch) transition = cameras.LinearTransitionBehavior(transitionSeconds=float(transitionSeconds)) self.cameraClient.PopActiveCamera(transitionBehaviors=[transition]) return True
def _PushCameraWithTransition(self, cameraName, behaviorNames, transitionSeconds, startHeight, targetList): entity = self.entityService.FindEntityByID(targetList[0]) cameraClass = getattr(cameras, cameraName) camera = cameraClass() camera.pushUp = startHeight if hasattr(camera, 'SetEntity'): camera.SetEntity(entity) names = behaviorNames.split(',') for name in names: name = name.replace(' ', '') if len(name): behaviorClass = getattr(cameras, name) behavior = behaviorClass() camera.AddBehavior(behavior) transition = cameras.LinearTransitionBehavior(transitionSeconds=float(transitionSeconds)) self.cameraClient.PushActiveCamera(camera, transitionBehaviors=[transition]) return True